Details
-
Bug
-
Resolution: Fixed
-
Blocker
-
Lustre 2.5.0
-
None
-
3
-
11804
Description
The patch removing the dqptr sem seems to have introduced a regression. In __dquot_alloc_space(), the i_lock is not released if we exit through the goto out_flush_warn.
int __dquot_alloc_space(struct inode *inode, qsize_t number, int flags) ... spin_lock(&inode->i_lock); ... spin_lock(&dq_data_lock); ... if (check_bdq(dquot[cnt], number, warn, warntype+cnt) == NO_QUOTA && !nofail) { ret = NO_QUOTA; spin_unlock(&dq_data_lock); goto out_flush_warn; } ... out_flush_warn: flush_warnings(dquot, warntype); for (cnt = 0; cnt < MAXQUOTAS; cnt++) dqput(dquot[cnt]); out: return ret; }
Many thanks to Andrew Perepechko for reporting the problem.
Attachments
Activity
Fix Version/s | New: Lustre 2.5.1 [ 10608 ] | |
Labels | Original: mq114 |
Resolution | New: Fixed [ 1 ] | |
Status | Original: Open [ 1 ] | New: Resolved [ 5 ] |
Link | New: This issue is related to INTL-25 [ INTL-25 ] |
Fix Version/s | New: Lustre 2.4.2 [ 10605 ] |
Labels | Original: mq114 mq413 | New: mq114 |
Labels | Original: mq114 | New: mq114 mq413 |
Fix Version/s | New: Lustre 2.6.0 [ 10595 ] | |
Priority | Original: Critical [ 2 ] | New: Blocker [ 1 ] |
Fix Version/s | Original: Lustre 2.6.0 [ 10595 ] | |
Labels | New: mq114 | |
Priority | Original: Blocker [ 1 ] | New: Critical [ 2 ] |
Fix Version/s | New: Lustre 2.6.0 [ 10595 ] | |
Priority | Original: Critical [ 2 ] | New: Blocker [ 1 ] |
Assignee | Original: WC Triage [ wc-triage ] | New: Johann Lombardi [ johann ] |