9p: Add datasync to client side TFSYNC/RFSYNC for dotl
SYNOPSIS size[4] Tfsync tag[2] fid[4] datasync[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. If datasync flag is specified data will be fleshed but does not flush modified metadata unless that metadata is needed in order to allow a subsequent data retrieval to be correctly handled. Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
This commit is contained in:

committed by
Eric Van Hensbergen

parent
7b3bb3fe16
commit
b165d60145
@@ -1165,17 +1165,18 @@ int p9_client_link(struct p9_fid *dfid, struct p9_fid *oldfid, char *newname)
|
||||
}
|
||||
EXPORT_SYMBOL(p9_client_link);
|
||||
|
||||
int p9_client_fsync(struct p9_fid *fid)
|
||||
int p9_client_fsync(struct p9_fid *fid, int datasync)
|
||||
{
|
||||
int err;
|
||||
struct p9_client *clnt;
|
||||
struct p9_req_t *req;
|
||||
|
||||
P9_DPRINTK(P9_DEBUG_9P, ">>> TFSYNC fid %d\n", fid->fid);
|
||||
P9_DPRINTK(P9_DEBUG_9P, ">>> TFSYNC fid %d datasync:%d\n",
|
||||
fid->fid, datasync);
|
||||
err = 0;
|
||||
clnt = fid->clnt;
|
||||
|
||||
req = p9_client_rpc(clnt, P9_TFSYNC, "d", fid->fid);
|
||||
req = p9_client_rpc(clnt, P9_TFSYNC, "dd", fid->fid, datasync);
|
||||
if (IS_ERR(req)) {
|
||||
err = PTR_ERR(req);
|
||||
goto error;
|
||||
|
Reference in New Issue
Block a user