~ubuntu-branches/ubuntu/raring/linux-ti-omap4/raring-proposed

« back to all changes in this revision

Viewing changes to fs/xfs/xfs_qm.c

  • Committer: Package Import Robot
  • Author(s): Paolo Pisati, Paolo Pisati, Ubuntu: 3.5.0-25.38
  • Date: 2013-02-20 22:03:31 UTC
  • mfrom: (74.1.1 quantal-proposed)
  • Revision ID: package-import@ubuntu.com-20130220220331-0ea4l33x3cr61nch
Tags: 3.5.0-220.28
* Release Tracking Bug
  - LP: #1130311

[ Paolo Pisati ]

* rebased on Ubuntu-3.5.0-25.38

[ Ubuntu: 3.5.0-25.38 ]

* Release Tracking Bug
  - LP: #1129472
* ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up()
  - LP: #1119885, #1129192
  - CVE-2013-0871
* ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL
  - LP: #1119885, #1129192
  - CVE-2013-0871
* wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED
  task
  - LP: #1119885, #1129192
  - CVE-2013-0871

Show diffs side-by-side

added added

removed removed

Lines of Context:
1453
1453
        int                     error;
1454
1454
 
1455
1455
        if (!xfs_dqlock_nowait(dqp))
1456
 
                goto out_busy;
 
1456
                goto out_move_tail;
1457
1457
 
1458
1458
        /*
1459
1459
         * This dquot has acquired a reference in the meantime remove it from
1476
1476
         * getting flushed to disk, we don't want to reclaim it.
1477
1477
         */
1478
1478
        if (!xfs_dqflock_nowait(dqp))
1479
 
                goto out_busy;
 
1479
                goto out_unlock_move_tail;
1480
1480
 
1481
1481
        if (XFS_DQ_IS_DIRTY(dqp)) {
1482
1482
                struct xfs_buf  *bp = NULL;
1487
1487
                if (error) {
1488
1488
                        xfs_warn(mp, "%s: dquot %p flush failed",
1489
1489
                                 __func__, dqp);
1490
 
                        goto out_busy;
 
1490
                        goto out_unlock_move_tail;
1491
1491
                }
1492
1492
 
1493
1493
                xfs_buf_delwri_queue(bp, buffer_list);
1496
1496
                 * Give the dquot another try on the freelist, as the
1497
1497
                 * flushing will take some time.
1498
1498
                 */
1499
 
                goto out_busy;
 
1499
                goto out_unlock_move_tail;
1500
1500
        }
1501
1501
        xfs_dqfunlock(dqp);
1502
1502
 
1515
1515
        XFS_STATS_INC(xs_qm_dqreclaims);
1516
1516
        return;
1517
1517
 
1518
 
out_busy:
1519
 
        xfs_dqunlock(dqp);
1520
 
 
1521
1518
        /*
1522
1519
         * Move the dquot to the tail of the list so that we don't spin on it.
1523
1520
         */
 
1521
out_unlock_move_tail:
 
1522
        xfs_dqunlock(dqp);
 
1523
out_move_tail:
1524
1524
        list_move_tail(&dqp->q_lru, &qi->qi_lru_list);
1525
 
 
1526
1525
        trace_xfs_dqreclaim_busy(dqp);
1527
1526
        XFS_STATS_INC(xs_qm_dqreclaim_misses);
1528
1527
}