From 66beeeb7739531335ad0982b51886e82f7c8647f Mon Sep 17 00:00:00 2001 From: Shehjar Tikoo Date: Tue, 31 Aug 2010 06:50:34 +0000 Subject: nfsrpc: Introduce THIS-setting support to fix mem-accounting Not setting THIS in nfs/rpc has been a blocker for NFS on mainline because without THIS set correctly to nfsx, mem-accounting goes looking into translators other than nfsx for nfs memory allocations, resulting in dereferencing bad addresses. Signed-off-by: Shehjar Tikoo Signed-off-by: Vijay Bellur BUG: 1280 (gf_mem_set_acct_info goes into spinlock busyloop, never returns) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1280 --- xlators/nfs/lib/src/rpcsvc.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'xlators/nfs/lib/src/rpcsvc.c') diff --git a/xlators/nfs/lib/src/rpcsvc.c b/xlators/nfs/lib/src/rpcsvc.c index 930634d6553..4698e2e8d11 100644 --- a/xlators/nfs/lib/src/rpcsvc.c +++ b/xlators/nfs/lib/src/rpcsvc.c @@ -1897,6 +1897,7 @@ nfs_rpcsvc_handle_rpc_call (rpcsvc_conn_t *conn) goto err_reply; if ((actor) && (actor->actor)) { + THIS = nfs_rpcsvc_request_actorxl (req); nfs_rpcsvc_conn_ref (conn); ret = actor->actor (req); } @@ -2201,6 +2202,7 @@ nfs_rpcsvc_record_vectored_call_actor (rpcsvc_conn_t *conn) if (actor->vector_actor) { nfs_rpcsvc_conn_ref (conn); + THIS = nfs_rpcsvc_request_actorxl (req); ret = actor->vector_actor (req, rs->vectoriob); } else { nfs_rpcsvc_request_seterr (req, PROC_UNAVAIL); -- cgit