From: "Matthew Wilcox (Oracle)" <willy@infradead.org> To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>, ericvh@gmail.com, lucho@ionkov.net, viro@zeniv.linux.org.uk, jlayton@kernel.org, idryomov@gmail.com, mark@fasheh.com, jlbec@evilplan.org, joseph.qi@linux.alibaba.com, v9fs-developer@lists.sourceforge.net, linux-kernel@vger.kernel.org, ceph-devel@vger.kernel.org, ocfs2-devel@oss.oracle.com, linux-btrfs@vger.kernel.org, clm@fb.com, josef@toxicpanda.com, dsterba@suse.com Subject: [PATCH 0/7] Fix a pile of 4GB file problems on 32-bit Date: Sun, 4 Oct 2020 19:04:21 +0100 [thread overview] Message-ID: <20201004180428.14494-1-willy@infradead.org> (raw) I caught a bug in my own code where I forgot to cast to loff_t before shifting. So I thought I'd grep around and see if I could find any other occurrences. I found a few that were clearly bugs, and they're fixed below. There are other places where we don't cast, and I think they're OK. For example, some places we have a 'nr_pages' being shifted by PAGE_SHIFT, and that's probably OK because it's probably a single I/O. Also, I didn't touch AFFS or ROMFS or some other filesystems which probably have never seen a 4GB file in their lives. Might be worth fixing to be sure nobody copies bad code from them, but not worth cc'ing stable for. I didn't look for SECTOR_SHIFT or SECTOR_SIZE (or bare 9/512), just PAGE_SIZE and PAGE_SHIFT. I can't find a GCC warning to enable for this pattern, so I filed https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97287 Matthew Wilcox (Oracle) (7): 9P: Cast to loff_t before multiplying buffer: Promote to unsigned long long before shifting ceph: Promote to unsigned long long before shifting ocfs2: Promote to unsigned long long before shifting btrfs: Promote to unsigned long long before shifting btrfs: Promote to unsigned long long before shifting btrfs: Promote to unsigned long long before multiplying fs/9p/vfs_file.c | 4 ++-- fs/btrfs/ioctl.c | 6 +++--- fs/btrfs/raid56.c | 2 +- fs/btrfs/scrub.c | 25 ++++++++++++++++--------- fs/buffer.c | 2 +- fs/ceph/addr.c | 2 +- fs/ocfs2/alloc.c | 2 +- 7 files changed, 25 insertions(+), 18 deletions(-) -- 2.28.0
WARNING: multiple messages have this Message-ID (diff)
From: Matthew Wilcox (Oracle) <willy@infradead.org> To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>, ericvh@gmail.com, lucho@ionkov.net, viro@zeniv.linux.org.uk, jlayton@kernel.org, idryomov@gmail.com, mark@fasheh.com, jlbec@evilplan.org, joseph.qi@linux.alibaba.com, v9fs-developer@lists.sourceforge.net, linux-kernel@vger.kernel.org, ceph-devel@vger.kernel.org, ocfs2-devel@oss.oracle.com, linux-btrfs@vger.kernel.org, clm@fb.com, josef@toxicpanda.com, dsterba@suse.com Subject: [Ocfs2-devel] [PATCH 0/7] Fix a pile of 4GB file problems on 32-bit Date: Sun, 4 Oct 2020 19:04:21 +0100 [thread overview] Message-ID: <20201004180428.14494-1-willy@infradead.org> (raw) I caught a bug in my own code where I forgot to cast to loff_t before shifting. So I thought I'd grep around and see if I could find any other occurrences. I found a few that were clearly bugs, and they're fixed below. There are other places where we don't cast, and I think they're OK. For example, some places we have a 'nr_pages' being shifted by PAGE_SHIFT, and that's probably OK because it's probably a single I/O. Also, I didn't touch AFFS or ROMFS or some other filesystems which probably have never seen a 4GB file in their lives. Might be worth fixing to be sure nobody copies bad code from them, but not worth cc'ing stable for. I didn't look for SECTOR_SHIFT or SECTOR_SIZE (or bare 9/512), just PAGE_SIZE and PAGE_SHIFT. I can't find a GCC warning to enable for this pattern, so I filed https://urldefense.com/v3/__https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97287__;!!GqivPVa7Brio!JmJRfLO1W1WY_UNpWJIfK5J2F0viNTrZ3l7xIrCKzl03yThvlPmVBeZHbHY6hZu2IJ2u7Q$ Matthew Wilcox (Oracle) (7): 9P: Cast to loff_t before multiplying buffer: Promote to unsigned long long before shifting ceph: Promote to unsigned long long before shifting ocfs2: Promote to unsigned long long before shifting btrfs: Promote to unsigned long long before shifting btrfs: Promote to unsigned long long before shifting btrfs: Promote to unsigned long long before multiplying fs/9p/vfs_file.c | 4 ++-- fs/btrfs/ioctl.c | 6 +++--- fs/btrfs/raid56.c | 2 +- fs/btrfs/scrub.c | 25 ++++++++++++++++--------- fs/buffer.c | 2 +- fs/ceph/addr.c | 2 +- fs/ocfs2/alloc.c | 2 +- 7 files changed, 25 insertions(+), 18 deletions(-) -- 2.28.0
next reply other threads:[~2020-10-04 18:05 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-04 18:04 Matthew Wilcox (Oracle) [this message] 2020-10-04 18:04 ` [Ocfs2-devel] [PATCH 0/7] Fix a pile of 4GB file problems on 32-bit Matthew Wilcox 2020-10-04 18:04 ` [PATCH 1/7] 9P: Cast to loff_t before multiplying Matthew Wilcox (Oracle) 2020-10-04 18:04 ` [Ocfs2-devel] " Matthew Wilcox 2020-10-07 5:48 ` Christoph Hellwig 2020-10-07 5:48 ` [Ocfs2-devel] " Christoph Hellwig 2020-10-07 18:47 ` Matthew Wilcox 2020-10-07 18:47 ` [Ocfs2-devel] " Matthew Wilcox 2020-10-26 17:14 ` Dominique Martinet 2020-10-26 17:14 ` [Ocfs2-devel] " Dominique Martinet 2020-10-04 18:04 ` [PATCH 2/7] buffer: Promote to unsigned long long before shifting Matthew Wilcox (Oracle) 2020-10-04 18:04 ` [Ocfs2-devel] " Matthew Wilcox 2020-10-04 18:04 ` [PATCH 3/7] ceph: " Matthew Wilcox (Oracle) 2020-10-04 18:04 ` [Ocfs2-devel] " Matthew Wilcox 2020-10-06 11:29 ` Jeff Layton 2020-10-06 11:29 ` [Ocfs2-devel] " Jeff Layton 2020-10-06 17:20 ` Jeff Layton 2020-10-06 17:20 ` [Ocfs2-devel] " Jeff Layton 2020-10-04 18:04 ` [PATCH 4/7] ocfs2: " Matthew Wilcox (Oracle) 2020-10-04 18:04 ` [Ocfs2-devel] " Matthew Wilcox 2020-10-04 18:04 ` [PATCH 5/7] btrfs: " Matthew Wilcox (Oracle) 2020-10-04 18:04 ` [Ocfs2-devel] " Matthew Wilcox 2020-10-09 14:18 ` Josef Bacik 2020-10-09 14:18 ` [Ocfs2-devel] " Josef Bacik 2020-10-26 17:02 ` David Sterba 2020-10-26 17:02 ` [Ocfs2-devel] " David Sterba 2020-10-04 18:04 ` [PATCH 6/7] " Matthew Wilcox (Oracle) 2020-10-04 18:04 ` [Ocfs2-devel] " Matthew Wilcox 2020-10-09 14:18 ` Josef Bacik 2020-10-09 14:18 ` [Ocfs2-devel] " Josef Bacik 2020-10-26 16:35 ` David Sterba 2020-10-26 16:35 ` [Ocfs2-devel] " David Sterba 2020-10-26 16:44 ` Matthew Wilcox 2020-10-26 16:44 ` [Ocfs2-devel] " Matthew Wilcox 2020-10-26 17:03 ` David Sterba 2020-10-26 17:03 ` [Ocfs2-devel] " David Sterba 2020-10-04 18:04 ` [PATCH 7/7] btrfs: Promote to unsigned long long before multiplying Matthew Wilcox (Oracle) 2020-10-04 18:04 ` [Ocfs2-devel] " Matthew Wilcox 2020-10-26 16:21 ` David Sterba 2020-10-26 16:21 ` [Ocfs2-devel] " David Sterba
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=20201004180428.14494-1-willy@infradead.org \ --to=willy@infradead.org \ --cc=ceph-devel@vger.kernel.org \ --cc=clm@fb.com \ --cc=dsterba@suse.com \ --cc=ericvh@gmail.com \ --cc=idryomov@gmail.com \ --cc=jlayton@kernel.org \ --cc=jlbec@evilplan.org \ --cc=josef@toxicpanda.com \ --cc=joseph.qi@linux.alibaba.com \ --cc=linux-btrfs@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lucho@ionkov.net \ --cc=mark@fasheh.com \ --cc=ocfs2-devel@oss.oracle.com \ --cc=v9fs-developer@lists.sourceforge.net \ --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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.