Jeff Layton 3ae629d98b cifs: on CONFIG_HIGHMEM machines, limit the rsize/wsize to the kmap space
We currently rely on being able to kmap all of the pages in an async
read or write request. If you're on a machine that has CONFIG_HIGHMEM
set then that kmap space is limited, sometimes to as low as 512 slots.

With 512 slots, we can only support up to a 2M r/wsize, and that's
assuming that we can get our greedy little hands on all of them. There
are other users however, so it's possible we'll end up stuck with a
size that large.

Since we can't handle a rsize or wsize larger than that currently, cap
those options at the number of kmap slots we have. We could consider
capping it even lower, but we currently default to a max of 1M. Might as
well allow those luddites on 32 bit arches enough rope to hang
themselves.

A more robust fix would be to teach the send and receive routines how
to contend with an array of pages so we don't need to marshal up a kvec
array at all. That's a fairly significant overhaul though, so we'll need
this limit in place until that's ready.

Cc: <stable@vger.kernel.org>
Reported-by: Jian Li <jiali@redhat.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
2012-07-16 23:57:09 -05:00
..
2012-05-29 23:28:34 -04:00
2012-05-29 23:28:34 -04:00
2012-05-28 09:54:45 -07:00
2012-05-29 23:28:33 -04:00
2012-05-28 09:54:45 -07:00
2012-05-28 09:54:45 -07:00
2012-05-29 23:28:33 -04:00
2012-05-29 23:28:33 -04:00
2012-06-20 15:15:03 -07:00
2012-03-20 21:29:52 -04:00
2012-03-20 21:29:38 -04:00
2012-03-30 17:31:56 -07:00
2012-05-28 09:54:45 -07:00
2012-05-28 09:54:45 -07:00
2012-06-21 14:21:11 -05:00
2012-05-29 16:22:23 -07:00
2012-03-20 21:29:46 -04:00
2012-03-20 21:29:46 -04:00
2012-05-28 09:54:45 -07:00
2012-05-29 23:28:41 -04:00
2012-06-01 12:12:00 -04:00
2012-05-29 23:28:31 -04:00
2012-03-20 21:29:38 -04:00
2012-05-29 23:28:41 -04:00
2012-05-29 23:28:41 -04:00
2012-06-13 21:16:42 +02:00
2012-05-29 23:28:29 -04:00