Message ID | 1425096977-9293-1-git-send-email-trond.myklebust@primarydata.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Looks good to me. -dros > On Feb 27, 2015, at 11:16 PM, Trond Myklebust <trond.myklebust@primarydata.com> wrote: > > The O_DIRECT code will grab the inode->i_mutex and flush out buffered > writes, before scheduling a read or a write. However there is no > equivalent in the buffered write code to wait for O_DIRECT to complete. > > Fixes a reported issue in xfstests generic/133, when first performing an > O_DIRECT write followed by a buffered write. > > Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> > --- > fs/nfs/file.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/fs/nfs/file.c b/fs/nfs/file.c > index 94712fc781fa..c045c7169fa0 100644 > --- a/fs/nfs/file.c > +++ b/fs/nfs/file.c > @@ -372,6 +372,10 @@ start: > nfs_wait_bit_killable, TASK_KILLABLE); > if (ret) > return ret; > + /* > + * Wait for O_DIRECT to complete > + */ > + nfs_inode_dio_wait(mapping->host); > > page = grab_cache_page_write_begin(mapping, index, flags); > if (!page) > -- > 2.1.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 94712fc781fa..c045c7169fa0 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -372,6 +372,10 @@ start: nfs_wait_bit_killable, TASK_KILLABLE); if (ret) return ret; + /* + * Wait for O_DIRECT to complete + */ + nfs_inode_dio_wait(mapping->host); page = grab_cache_page_write_begin(mapping, index, flags); if (!page)
The O_DIRECT code will grab the inode->i_mutex and flush out buffered writes, before scheduling a read or a write. However there is no equivalent in the buffered write code to wait for O_DIRECT to complete. Fixes a reported issue in xfstests generic/133, when first performing an O_DIRECT write followed by a buffered write. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> --- fs/nfs/file.c | 4 ++++ 1 file changed, 4 insertions(+)