Loading fs/fuse/dir.c +12 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; } Loading Loading @@ -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; } Loading fs/fuse/file.c +2 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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++) { Loading fs/fuse/fuse_i.h +2 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading
fs/fuse/dir.c +12 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; } Loading Loading @@ -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; } Loading
fs/fuse/file.c +2 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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++) { Loading
fs/fuse/fuse_i.h +2 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading