staging: lustre: obdclass: do not call lu_site_purge() for single object exceed
authorAlex Zhuravlev <alexey.zhuravlev@intel.com>
Sun, 29 Jan 2017 00:04:45 +0000 (19:04 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Feb 2017 12:01:37 +0000 (13:01 +0100)
commit3f5b9d55f500d1fa69f4037a56719fd47daee8dc
tree3b2360c44d47611747419de9561eaafbaf3c41cf
parentd49ae4383a1f6b5f127f74a2bbaa851833683d5a
staging: lustre: obdclass: do not call lu_site_purge() for single object exceed

First of all, this is expensive procedure including a global
mutex and per-bucket spinlocks. also, all the threads observed
exceed will be calling lu_site_purge() and essentially serialized
on that. instead we can let other threads to skip the whole
procedure.

Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7896
Reviewed-on: http://review.whamcloud.com/19082
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/include/lu_object.h
drivers/staging/lustre/lustre/obdclass/lu_object.c