Whamcloud - gitweb
LU-12225 obdclass: fix race access vs removal of jobid_hash 63/34763/5
authorWang Shilong <wshilong@ddn.com>
Mon, 29 Apr 2019 12:46:47 +0000 (20:46 +0800)
committerOleg Drokin <green@whamcloud.com>
Fri, 10 May 2019 07:12:38 +0000 (07:12 +0000)
commitb664182e0361731fa409ac6a0a0f19637a7e5288
tree8f7afa7466f343d35d94d24f99688401e1e93c68
parentdbb81e826290b2db27e24a85869c9d0736726caa
LU-12225 obdclass: fix race access vs removal of jobid_hash

We added @pidmap into hash and reference count will be 1.
However, another thread might reclaim this newely added
@pidmap from hash list, we try to access this @pidmap
will become a user-after-free operation.

Fix this problem by init reference count as 1 before
adding hash list, which gurantee memory could be not
freed during our access.

Check other places where memory reclaim used did similar
idea like this.

Change-Id: Idd5f429b97e064e29b6883243f8a012c2b4b4ae7
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Reviewed-on: https://review.whamcloud.com/34763
Tested-by: Jenkins
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Gu Zheng <gzheng@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/obdclass/jobid.c