From: Jeff Layton <jlayton@redhat.com>
To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: akpm@linux-foundation.org, hch@infradead.org, rlove@google.com,
msb@google.com, viro@zeniv.linux.org.uk, hannes@cmpxchg.org
Subject: [PATCH 0/3] vfs: change sb->s_maxbytes to loff_t (try #2)
Date: Mon, 10 Aug 2009 08:17:40 -0400 [thread overview]
Message-ID: <1249906663-7572-1-git-send-email-jlayton@redhat.com> (raw)
This is the second attempt at a set to convert s_maxbytes to loff_t. The
first set had a patch for fiemap that doesn't seem to actually be needed
and removed a check from do_sendfile that does seem to be needed. This
set should fix those problems and also cleans up the warning in
vfs_kern_mount a bit.
Recently, I spent a day or so tracking down a long-standing problem with
CIFS and sendfile(). The problem turned out to be that CIFS was setting
s_maxbytes to a value that, when cast to a signed value, became
negative. This broke the offset checks in do_sendfile().
While I fixed this in CIFS, it turns out that this problem is actually a
little more widespread. Since setting s_maxbytes to a value larger than
MAX_LFS_FILESIZE breaks things, I believe it makes sense to turn
s_maxbytes into an loff_t. Most of the places that compare values to
s_maxbytes are comparing it against signed loff_t values, so this change
should help reduce the amount of implicit conversion that needs to be
done.
I've looked at the places that use s_maxbytes and didn't see any that
would immediately break with this change. That said, some of the
calculations that filesystems use to set s_maxbytes are convoluted, so
it's possible that I missed some. A critical eye toward that when
reviewing would be good.
This set is only lightly tested, but it's fairly straightforward. Many
thanks to those that have reviewed this so far.
Jeff Layton (3):
vfs: make get_sb_pseudo set s_maxbytes to value that can be cast to
signed
vfs: remove redundant position check in do_sendfile
vfs: change sb->s_maxbytes to a loff_t
fs/libfs.c | 2 +-
fs/read_write.c | 3 ---
fs/super.c | 10 ++++++++++
include/linux/fs.h | 2 +-
4 files changed, 12 insertions(+), 5 deletions(-)
next reply other threads:[~2009-08-10 12:18 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-10 12:17 Jeff Layton [this message]
2009-08-10 12:17 ` [PATCH 1/3] vfs: make get_sb_pseudo set s_maxbytes to value that can be cast to signed Jeff Layton
2009-08-10 13:49 ` Christoph Hellwig
2009-08-10 14:08 ` Jeff Layton
2009-08-10 14:16 ` Christoph Hellwig
2009-08-10 12:17 ` [PATCH 2/3] vfs: remove redundant position check in do_sendfile Jeff Layton
2009-08-10 14:56 ` Johannes Weiner
2009-08-10 12:17 ` [PATCH 3/3] vfs: change sb->s_maxbytes to a loff_t Jeff Layton
2009-08-10 21:24 ` Mandeep Singh Baines
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1249906663-7572-1-git-send-email-jlayton@redhat.com \
--to=jlayton@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=msb@google.com \
--cc=rlove@google.com \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).