Whamcloud - gitweb
LU-5287 export: hold exp_lock when modify exp_flags 62/12162/2
authorNiu Yawei <yawei.niu@intel.com>
Thu, 11 Sep 2014 10:57:52 +0000 (06:57 -0400)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 6 Nov 2014 18:36:30 +0000 (18:36 +0000)
There are few places that changing the exp_flags without holding
exp_lock, that could overwrite other concurrent exp_flags updating.

Lustre-commit: 999fedbd5c18a021064b23933e84e4c92a7f48ac
Lustre-change: http://review.whamcloud.com/11871

Signed-off-by: Niu Yawei <yawei.niu@intel.com>
Signed-off-by: Bob Glossman <bob.glossman@intel.com>
Change-Id: I9c0421ffeacd6bf6feaa31dca9f9fc0e7963bc8b
Reviewed-on: http://review.whamcloud.com/12162
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/ldlm/ldlm_lib.c

index 3d27f17..eb8a58b 100644 (file)
@@ -1085,8 +1085,10 @@ dont_check_exports:
         * OBD_CONNECT_MNE_SWAB flag around forever, just so long as we need
         * interop with unpatched 2.2 clients.  For newer clients, servers
         * will never do MNE swabbing, let the client handle that.  LU-1644 */
+       spin_lock(&export->exp_lock);
        export->exp_need_mne_swab = !ptlrpc_req_need_swab(req) &&
                        !(data->ocd_connect_flags & OBD_CONNECT_MNE_SWAB);
+       spin_unlock(&export->exp_lock);
 #else
 #warning "LU-1644: Remove old OBD_CONNECT_MNE_SWAB fixup and exp_need_mne_swab"
 #endif