aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorVenkateswararao Jujjuri (JV) <jvrao@linux.vnet.ibm.com>2010-09-22 20:19:19 -0400
committerEric Van Hensbergen <ericvh@gmail.com>2010-10-28 10:08:47 -0400
commit920e65dc6911da28a58e17f4b683302636fc6d8e (patch)
tree761280ee48576a45d13df5df685ea6b9da7fd775 /net
parentb04faaf3717307cd976a15667c8c24161c1d24ef (diff)
[9p] Introduce client side TFSYNC/RFSYNC for dotl.
SYNOPSIS size[4] Tfsync tag[2] fid[4] size[4] Rfsync tag[2] DESCRIPTION The Tfsync transaction transfers ("flushes") all modified in-core data of file identified by fid to the disk device (or other permanent storage device) where that file resides. Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Diffstat (limited to 'net')
-rw-r--r--net/9p/client.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/net/9p/client.c b/net/9p/client.c
index e50ec802937a..30c4a1b224fb 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -1162,6 +1162,31 @@ int p9_client_link(struct p9_fid *dfid, struct p9_fid *oldfid, char *newname)
1162} 1162}
1163EXPORT_SYMBOL(p9_client_link); 1163EXPORT_SYMBOL(p9_client_link);
1164 1164
1165int p9_client_fsync(struct p9_fid *fid)
1166{
1167 int err;
1168 struct p9_client *clnt;
1169 struct p9_req_t *req;
1170
1171 P9_DPRINTK(P9_DEBUG_9P, ">>> TFSYNC fid %d\n", fid->fid);
1172 err = 0;
1173 clnt = fid->clnt;
1174
1175 req = p9_client_rpc(clnt, P9_TFSYNC, "d", fid->fid);
1176 if (IS_ERR(req)) {
1177 err = PTR_ERR(req);
1178 goto error;
1179 }
1180
1181 P9_DPRINTK(P9_DEBUG_9P, "<<< RFSYNC fid %d\n", fid->fid);
1182
1183 p9_free_req(clnt, req);
1184
1185error:
1186 return err;
1187}
1188EXPORT_SYMBOL(p9_client_fsync);
1189
1165int p9_client_clunk(struct p9_fid *fid) 1190int p9_client_clunk(struct p9_fid *fid)
1166{ 1191{
1167 int err; 1192 int err;