fuse: always flush dirty data on close(2)
We want cached data to synced with the userspace filesystem on close(), for example to allow getting correct st_blocks value. Do this regardless of whether the userspace filesystem implements a FLUSH method or not. Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
parent
cf576c58b3
commit
614c026e8a
@ -445,10 +445,6 @@ static int fuse_flush(struct file *file, fl_owner_t id)
|
||||
if (is_bad_inode(inode))
|
||||
return -EIO;
|
||||
|
||||
err = 0;
|
||||
if (fc->no_flush)
|
||||
goto inval_attr_out;
|
||||
|
||||
err = write_inode_now(inode, 1);
|
||||
if (err)
|
||||
return err;
|
||||
@ -461,6 +457,10 @@ static int fuse_flush(struct file *file, fl_owner_t id)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = 0;
|
||||
if (fc->no_flush)
|
||||
goto inval_attr_out;
|
||||
|
||||
memset(&inarg, 0, sizeof(inarg));
|
||||
inarg.fh = ff->fh;
|
||||
inarg.lock_owner = fuse_lock_owner_id(fc, id);
|
||||
|
Loading…
Reference in New Issue
Block a user