The block layer SG should have the identical behaviour as SCSI sg when
it comes to SG_SET_RESERVED_SIZE - allow caller to specify a large
amount, truncate to largest we support, and return that with
SG_GET_RESERVED_SIZE. Currently we fail with -EINVAL if the value is
too large, I think the SCSI sg behaviour is more sane to use. This
one-liner fixes it up, please apply for 2.6.8.
Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
if (size < 0)
return -EINVAL;
if (size > (q->max_sectors << 9))
- return -EINVAL;
+ size = q->max_sectors << 9;
q->sg_reserved_size = size;
return 0;