Whamcloud - gitweb
LU-7853 lod: fixes bitfield in lod qos code 12/18812/15
authorRahul Deshmkuh <rahul.deshmukh@seagate.com>
Thu, 14 Jul 2016 06:02:45 +0000 (23:02 -0700)
committerOleg Drokin <green@whamcloud.com>
Fri, 26 Feb 2021 20:13:32 +0000 (20:13 +0000)
commit3bae39f0a5b98a279fb5f7b8d00211ac0d09366f
tree1aaf1db04ecc6ba949437f10d9c41bd442169db2
parent83e38bba6237f838c9a5d7d36b258cf6dd28bd13
LU-7853 lod: fixes bitfield in lod qos code

Updating bitfields in struct lod_qos struct is protected
by lq_rw_sem in most places but an update can be lost
due unprotected bitfield access from
lod_qos_thresholdrr_seq_write() and qos_prio_free_store().
This patch fixes it by replacing bitfields with named bits
and atomic bitops.

Cray-bug-id: LUS-4651
Signed-off-by: Rahul Deshmukh <rahul.deshmukh@seagate.com>
Signed-off-by: Alexander Zarochentsev <c17826@cray.com>
Change-Id: I28299ce4960e91be551d7f6e43a3b598daf4d7a2
Reviewed-on: https://review.whamcloud.com/18812
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/lu_object.h
lustre/lmv/lmv_obd.c
lustre/lmv/lproc_lmv.c
lustre/lod/lod_pool.c
lustre/lod/lod_qos.c
lustre/lod/lproc_lod.c
lustre/obdclass/lu_tgt_descs.c