projects
/
bluesky.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow NFS lookup requests to better proceed in parallel.
[bluesky.git]
/
nfs3
/
nfs3.c
diff --git
a/nfs3/nfs3.c
b/nfs3/nfs3.c
index
42ac46c
..
2895e5b
100644
(file)
--- a/
nfs3/nfs3.c
+++ b/
nfs3/nfs3.c
@@
-243,10
+243,14
@@
void nfsproc3_lookup_3_svc(diropargs3 *argp, RPCRequest *req)
async_rpc_send_reply(req, &result);
return;
}
async_rpc_send_reply(req, &result);
return;
}
+
+ result.lookup3res_u.resok.dir_attributes.present = TRUE;
+ encode_fattr3(&result.lookup3res_u.resok.dir_attributes.post_op_attr_u.attributes, dir);
+ g_mutex_unlock(dir->lock);
+
BlueSkyInode *inode = bluesky_get_inode(fs, inum);
if (inode == NULL) {
result.status = NFS3ERR_NOENT;
BlueSkyInode *inode = bluesky_get_inode(fs, inum);
if (inode == NULL) {
result.status = NFS3ERR_NOENT;
- g_mutex_unlock(dir->lock);
async_rpc_send_reply(req, &result);
return;
}
async_rpc_send_reply(req, &result);
return;
}
@@
-254,8
+258,6
@@
void nfsproc3_lookup_3_svc(diropargs3 *argp, RPCRequest *req)
schedule_inode_unref(req, inode);
result.status = NFS3_OK;
schedule_inode_unref(req, inode);
result.status = NFS3_OK;
- result.lookup3res_u.resok.dir_attributes.present = TRUE;
- encode_fattr3(&result.lookup3res_u.resok.dir_attributes.post_op_attr_u.attributes, dir);
result.lookup3res_u.resok.obj_attributes.present = TRUE;
encode_fattr3(&result.lookup3res_u.resok.obj_attributes.post_op_attr_u.attributes, inode);
result.lookup3res_u.resok.obj_attributes.present = TRUE;
encode_fattr3(&result.lookup3res_u.resok.obj_attributes.post_op_attr_u.attributes, inode);
@@
-265,7
+267,6
@@
void nfsproc3_lookup_3_svc(diropargs3 *argp, RPCRequest *req)
result.lookup3res_u.resok.object.data.data_val = (char *)&fh_bytes;
g_mutex_unlock(inode->lock);
result.lookup3res_u.resok.object.data.data_val = (char *)&fh_bytes;
g_mutex_unlock(inode->lock);
- g_mutex_unlock(dir->lock);
async_rpc_send_reply(req, &result);
}
async_rpc_send_reply(req, &result);
}