Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf5c1898 authored by Miklos Szeredi's avatar Miklos Szeredi
Browse files

fuse: honor AT_STATX_FORCE_SYNC



Force a refresh of attributes from the fuse server in this case.

Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent ff1b89f3
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -928,9 +928,16 @@ static int fuse_update_get_attr(struct inode *inode, struct file *file,
{
	struct fuse_inode *fi = get_fuse_inode(inode);
	int err = 0;
	bool sync;

	if (!(flags & AT_STATX_DONT_SYNC) &&
	    time_before64(fi->i_time, get_jiffies_64())) {
	if (flags & AT_STATX_FORCE_SYNC)
		sync = true;
	else if (flags & AT_STATX_DONT_SYNC)
		sync = false;
	else
		sync = time_before64(fi->i_time, get_jiffies_64());

	if (sync) {
		forget_all_cached_acls(inode);
		err = fuse_do_getattr(inode, stat, file);
	} else if (stat) {