2009-06-22 18:15:55

by Robert Love

[permalink] [raw]
Subject: [patch] small sendfile fixes

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 <[email protected]>
Signed-off-by: Robert Love <[email protected]>


2009-06-22 19:12:23

by Robert Love

[permalink] [raw]
Subject: Re: [patch] small sendfile fixes

And...the actual patch.

Robert


Attachments:
sendfile-fix-2.6.30-rlove-1.patch (1.68 kB)