fs/9p: Add fid to inode in cached mode

The fid attached to inode will be opened O_RDWR mode and is used
for dirty page writeback only.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
This commit is contained in:
Aneesh Kumar K.V
2011-02-28 17:03:57 +05:30
committed by Eric Van Hensbergen
parent 17311779ac
commit 3cf387d780
5 changed files with 83 additions and 3 deletions

View File

@@ -86,11 +86,30 @@ int v9fs_file_open(struct inode *inode, struct file *file)
}
file->private_data = fid;
if (v9ses->cache && !inode->i_private) {
/*
* clone a fid and add it to inode->i_private
* we do it during open time instead of
* page dirty time via write_begin/page_mkwrite
* because we want write after unlink usecase
* to work.
*/
fid = v9fs_writeback_fid(file->f_path.dentry);
if (IS_ERR(fid)) {
err = PTR_ERR(fid);
goto out_error;
}
inode->i_private = (void *) fid;
}
#ifdef CONFIG_9P_FSCACHE
if (v9ses->cache)
v9fs_cache_inode_set_cookie(inode, file);
#endif
return 0;
out_error:
p9_client_clunk(file->private_data);
file->private_data = NULL;
return err;
}
/**