From: Stephen Rothwell <sfr@canb.auug.org.au>
To: Al Viro <viro@ZenIV.linux.org.uk>
Cc: linux-next@vger.kernel.org, linux-kernel@vger.kernel.org,
Christoph Hellwig <hch@lst.de>,
David Chinner <david@fromorbit.com>,
xfs-masters@oss.sgi.com
Subject: linux-next: manual merge of the vfs tree with the xfs tree
Date: Mon, 26 Jul 2010 11:51:16 +1000 [thread overview]
Message-ID: <20100726115116.1e6de038.sfr@canb.auug.org.au> (raw)
Hi Al,
[These became irrelevant when I reverted the xfs tree for a build error,
but will be done when the xfs tree is fixed.]
Today's linux-next merge of the vfs tree got a conflict in
fs/xfs/linux-2.6/xfs_aops.c between commit
7346e1197eb76e22199b6b4625f129331e0fd7ac ("xfs simplify and speed up
direct I/O completions") from the xfs tree and commit
b682ce06449c35a85dc5e63fcaab7dba2ba6df9b ("sort out blockdev_direct_IO
variants") from the vfs tree.
Also between commit 6f6b39eb706f5617750cf02952e4e6d7470c40bf ("xfs: use
GFP_NOFS for page cache allocation") from the xfs tree and commit
4478b21470275454f9eb6f590dfe7cc54d643978 ("get rid of
block_write_begin_newtrunc") from the vfs tree.
I fixed them up (I think - see below) and can carry the fix as necessary.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc fs/xfs/linux-2.6/xfs_aops.c
index d24e78f,77a9ecc..0000000
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@@ -1471,26 -1655,22 +1471,26 @@@ xfs_vm_direct_IO
loff_t offset,
unsigned long nr_segs)
{
- struct file *file = iocb->ki_filp;
- struct inode *inode = file->f_mapping->host;
- struct block_device *bdev;
- ssize_t ret;
-
- bdev = xfs_find_bdev_for_inode(inode);
-
- iocb->private = xfs_alloc_ioend(inode, rw == WRITE ?
- IO_UNWRITTEN : IO_READ);
-
- ret = __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset,
- nr_segs, xfs_get_blocks_direct,
- xfs_end_io_direct, NULL, 0);
+ struct inode *inode = iocb->ki_filp->f_mapping->host;
+ struct block_device *bdev = xfs_find_bdev_for_inode(inode);
+ ssize_t ret;
+
+ if (rw & WRITE) {
+ iocb->private = xfs_alloc_ioend(inode, IO_NEW);
+
- ret = blockdev_direct_IO_no_locking(rw, iocb, inode, bdev, iov,
- offset, nr_segs,
- xfs_get_blocks_direct,
- xfs_end_io_direct_write);
++ ret = __blockdev_direct_IO(rw, iocb, inode, bdev, iov,
++ offset, nr_segs,
++ xfs_get_blocks_direct,
++ xfs_end_io_direct_write, NULL, 0);
+ if (ret != -EIOCBQUEUED && iocb->private)
+ xfs_destroy_ioend(iocb->private);
+ } else {
- ret = blockdev_direct_IO_no_locking(rw, iocb, inode, bdev, iov,
- offset, nr_segs,
- xfs_get_blocks_direct,
- NULL);
++ ret = __blockdev_direct_IO(rw, iocb, inode, bdev, iov,
++ offset, nr_segs,
++ xfs_get_blocks_direct,
++ NULL, NULL, 0);
+ }
- if (unlikely(ret != -EIOCBQUEUED && iocb->private))
- xfs_destroy_ioend(iocb->private);
return ret;
}
@@@ -1504,9 -1700,31 +1520,31 @@@ xfs_vm_write_begin
struct page **pagep,
void **fsdata)
{
- *pagep = NULL;
- return block_write_begin(file, mapping, pos, len, flags | AOP_FLAG_NOFS,
- pagep, fsdata, xfs_get_blocks);
+ int ret;
+
- ret = block_write_begin(mapping, pos, len, flags, pagep,
++ ret = block_write_begin(mapping, pos, len, flags | AOP_FLAG_NOFS, pagep,
+ xfs_get_blocks);
+ if (unlikely(ret))
+ xfs_vm_write_failed(mapping, pos + len);
+ return ret;
+ }
+
+ STATIC int
+ xfs_vm_write_end(
+ struct file *file,
+ struct address_space *mapping,
+ loff_t pos,
+ unsigned len,
+ unsigned copied,
+ struct page *page,
+ void *fsdata)
+ {
+ int ret;
+
+ ret = generic_write_end(file, mapping, pos, len, copied, page, fsdata);
+ if (unlikely(ret < len))
+ xfs_vm_write_failed(mapping, pos + len);
+ return ret;
}
STATIC sector_t
next reply other threads:[~2010-07-26 1:51 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-26 1:51 Stephen Rothwell [this message]
2010-07-26 3:59 ` linux-next: manual merge of the vfs tree with the xfs tree Dave Chinner
2010-07-26 4:05 ` Stephen Rothwell
-- strict thread matches above, loose matches on Subject: below --
2021-04-19 0:49 Stephen Rothwell
2021-04-20 16:40 ` Darrick J. Wong
2021-04-12 2:22 Stephen Rothwell
2021-04-13 15:20 ` Darrick J. Wong
2018-10-31 0:52 Stephen Rothwell
2018-10-31 1:12 ` Dave Chinner
2016-12-11 23:19 Stephen Rothwell
2015-11-10 23:21 Stephen Rothwell
2015-04-14 1:34 Stephen Rothwell
2015-04-13 1:57 Stephen Rothwell
2015-04-13 2:12 ` Dave Chinner
2011-07-18 3:36 Stephen Rothwell
2011-07-19 1:29 ` Dave Chinner
2010-07-05 0:02 Stephen Rothwell
2010-07-07 1:48 ` Christoph Hellwig
2010-07-07 3:50 ` Stephen Rothwell
2010-08-04 1:54 ` Stephen Rothwell
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=20100726115116.1e6de038.sfr@canb.auug.org.au \
--to=sfr@canb.auug.org.au \
--cc=david@fromorbit.com \
--cc=hch@lst.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
--cc=viro@ZenIV.linux.org.uk \
--cc=xfs-masters@oss.sgi.com \
/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).