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

Commit 5d2ef8d6 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "fuse: don't invalidate attrs when not using atime"

parents 30f4e822 66db8828
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -112,6 +112,16 @@ void fuse_invalidate_attr(struct inode *inode)
	get_fuse_inode(inode)->i_time = 0;
}

/**
 * Mark the attributes as stale due to an atime change.  Avoid the invalidate if
 * atime is not used.
 */
void fuse_invalidate_atime(struct inode *inode)
{
	if (!IS_RDONLY(inode))
		fuse_invalidate_attr(inode);
}

/*
 * Just mark the entry as stale, so that a next attempt to look it up
 * will result in a new lookup call to userspace
@@ -1404,7 +1414,7 @@ static int fuse_readdir(struct file *file, void *dstbuf, filldir_t filldir)
	}

	__free_page(page);
	fuse_invalidate_attr(inode); /* atime changed */
	fuse_invalidate_atime(inode);
	return err;
}

@@ -1437,7 +1447,7 @@ static char *read_link(struct dentry *dentry)
		link[req->out.args[0].size] = '\0';
 out:
	fuse_put_request(fc, req);
	fuse_invalidate_attr(inode); /* atime changed */
	fuse_invalidate_atime(inode);
	return link;
}

+2 −2
Original line number Diff line number Diff line
@@ -703,7 +703,7 @@ static int fuse_readpage(struct file *file, struct page *page)
		SetPageUptodate(page);
	}

	fuse_invalidate_attr(inode); /* atime changed */
	fuse_invalidate_atime(inode);
 out:
	unlock_page(page);
	return err;
@@ -732,7 +732,7 @@ static void fuse_readpages_end(struct fuse_conn *fc, struct fuse_req *req)
			fuse_read_update_size(inode, pos,
					      req->misc.read.attr_ver);
		}
		fuse_invalidate_attr(inode); /* atime changed */
		fuse_invalidate_atime(inode);
	}

	for (i = 0; i < req->num_pages; i++) {
+2 −0
Original line number Diff line number Diff line
@@ -786,6 +786,8 @@ void fuse_invalidate_attr(struct inode *inode);

void fuse_invalidate_entry_cache(struct dentry *entry);

void fuse_invalidate_atime(struct inode *inode);

/**
 * Acquire reference to fuse_conn
 */