User: | Jiri Slaby |
Error type: | Leaving function in locked state |
Error type description: | Some lock is not unlocked on all paths of a function, so it is leaked |
File location: | fs/xfs/quota/xfs_dquot_item.c |
Line in file: | 581 |
Project: | Linux Kernel |
Project version: | 2.6.28 |
Tools: |
Stanse
(1.2)
|
Entered: | 2012-05-21 20:30:05 UTC |
551 552/* 553 * There isn't much you can do to push on an quotaoff item. It is simply 554 * stuck waiting for the log to be flushed to disk. 555 */ 556/*ARGSUSED*/ 557STATIC void 558xfs_qm_qoff_logitem_push(xfs_qoff_logitem_t *qf) 559{ 560 return; 561} 562 563 564/*ARGSUSED*/ 565STATIC xfs_lsn_t 566xfs_qm_qoffend_logitem_committed( 567 xfs_qoff_logitem_t *qfe, 568 xfs_lsn_t lsn) 569{ 570 xfs_qoff_logitem_t *qfs; 571 572 qfs = qfe->qql_start_lip; 573 spin_lock(&qfs->qql_item.li_mountp->m_ail_lock); 574 /* 575 * Delete the qoff-start logitem from the AIL. 576 * xfs_trans_delete_ail() drops the AIL lock. 577 */ 578 xfs_trans_delete_ail(qfs->qql_item.li_mountp, (xfs_log_item_t *)qfs); 579 kmem_free(qfs); 580 kmem_free(qfe); 581 return (xfs_lsn_t)-1; 582} 583 584/* 585 * XXX rcc - don't know quite what to do with this. I think we can 586 * just ignore it. The only time that isn't the case is if we allow 587 * the client to somehow see that quotas have been turned off in which 588 * we can't allow that to get back until the quotaoff hits the disk. 589 * So how would that happen? Also, do we need different routines for 590 * quotaoff start and quotaoff end? I suspect the answer is yes but 591 * to be sure, I need to look at the recovery code and see how quota off