[patch] small sendfile fixes

From: Robert Love
Date: Mon Jun 22 2009 - 14:15:59 EST


Three fixes for sendfile, mostly related to sending large files from pseudo
filesystems:

- Fix sendfile for offsets > 300G. This can happen with pseudo filesystems.
This happens because the overflow check is using inode->i_sb->s_maxbytes
and not the superblock of the backing device's s_maxbytes. For a regular file
these are interchangible but for a special file these are different and you
want the latter.

- Don't compare against the max of the out_inode's superblock. Doesn't make
sense.

- For pseudo and other filesystems with s_maxbytes set to ~0ULL, max ends up
holding a negative number as it is signed. Check for and correct that.

Git patch is against 2.6.30. I'd like Al to take a look and make sure
my logic is right before applying.

Robert

From: Mandeep Singh Baines <msb@xxxxxxxxxx>
Signed-off-by: Robert Love <rlove@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/