lkml.org 
[lkml]   [2010]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 07/52] nfsd: make sure data is on disk before calling ->fsync
    Date
    From: Christoph Hellwig <hch@lst.de>

    commit 7211a4e859ad070b28545c06e0a6cb60b3b8aa31 upstream.

    nfsd is not using vfs_fsync, so I missed it when changing the calling
    convention during the 2.6.32 window. This patch fixes it to not only
    start the data writeout, but also wait for it to complete before calling
    into ->fsync.

    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    fs/nfsd/vfs.c | 5 +----
    1 files changed, 1 insertions(+), 4 deletions(-)

    diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
    index a293f02..570dd1c 100644
    --- a/fs/nfsd/vfs.c
    +++ b/fs/nfsd/vfs.c
    @@ -774,12 +774,9 @@ static inline int nfsd_dosync(struct file *filp, struct dentry *dp,
    int (*fsync) (struct file *, struct dentry *, int);
    int err;

    - err = filemap_fdatawrite(inode->i_mapping);
    + err = filemap_write_and_wait(inode->i_mapping);
    if (err == 0 && fop && (fsync = fop->fsync))
    err = fsync(filp, dp, 0);
    - if (err == 0)
    - err = filemap_fdatawait(inode->i_mapping);
    -
    return err;
    }

    --
    1.6.6


    \
     
     \ /
      Last update: 2010-01-14 23:41    [W:4.302 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site