-
Andriy Skulysh authored
setxattr takes inode lock and sends reint to MDS. truncate takes MDS_INODELOCK_DOM lock and wants to acquire inode lock. MDS locks are for different bits MDS_INODELOCK_UPDATE|MDS_INODELOCK_XATTR vs MDS_INODELOCK_DOM but they blocks each other if some blocking lock was present earlier. If IBITS waiting lock has no conflicts with any lock in the granted queue or any lock ahead in the waiting queue then it can be granted. Use separate waiting lists for each ibit to eliminate full lr_waiting list scan. Cray-bug-id: LUS-6970 Change-Id: I95b2ed0b1a0063b7ece5277a5ee06e2511d44e5f Signed-off-by:
Andriy Skulysh <c17819@cray.com> Reviewed-on: https://review.whamcloud.com/35057 Tested-by:
jenkins <devops@whamcloud.com> Tested-by:
Maloo <maloo@whamcloud.com> Reviewed-by:
Mike Pershin <mpershin@whamcloud.com> Reviewed-by:
Patrick Farrell <pfarrell@whamcloud.com> Reviewed-by:
Oleg Drokin <green@whamcloud.com>
2250e072