Details
-
Bug
-
Resolution: Won't Do
-
Minor
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
The quota-replace-dqptr-sem.patch adds additional dquot reference count in __dquot_alloc/free_space(), dquot_alloc/free_inode(), and calls dqput() to put the refcount on function exit. The purpose was to avoid used after free problem on the dquot, however, that change added dqput() calls for each inode/space alloc/free operations, and I'm afraid that'll contribute to global lock contention. (dqput() holds dq_list_lock)
The upstream version uses srcu_lock() to avoid the problem of use after free on dquot, no additional dqput() calls.