aboutsummaryrefslogtreecommitdiffstats
path: root/fs/quota
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-05-27 13:26:37 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-05-27 13:26:37 -0400
commite4ce30f3779c2ddaa7dfaa4042209e5dbacbada5 (patch)
treecc64c1dcd16b5dbf71ebc8338b339e6fb04abaee /fs/quota
parentb899ebeb05da4287ce845976727e3e83dadd25d5 (diff)
parent14ece1028b3ed53ffec1b1213ffc6acaf79ad77c (diff)
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits) ext4: Make fsync sync new parent directories in no-journal mode ext4: Drop whitespace at end of lines ext4: Fix compat EXT4_IOC_ADD_GROUP ext4: Conditionally define compat ioctl numbers tracing: Convert more ext4 events to DEFINE_EVENT ext4: Add new tracepoints to track mballoc's buddy bitmap loads ext4: Add a missing trace hook ext4: restart ext4_ext_remove_space() after transaction restart ext4: Clear the EXT4_EOFBLOCKS_FL flag only when warranted ext4: Avoid crashing on NULL ptr dereference on a filesystem error ext4: Use bitops to read/modify i_flags in struct ext4_inode_info ext4: Convert calls of ext4_error() to EXT4_ERROR_INODE() ext4: Convert callers of ext4_get_blocks() to use ext4_map_blocks() ext4: Add new abstraction ext4_map_blocks() underneath ext4_get_blocks() ext4: Use our own write_cache_pages() ext4: Show journal_checksum option ext4: Fix for ext4_mb_collect_stats() ext4: check for a good block group before loading buddy pages ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate ext4: Remove extraneous newlines in ext4_msg() calls ... Fixed up trivial conflict in fs/ext4/fsync.c
Diffstat (limited to 'fs/quota')
-rw-r--r--fs/quota/dquot.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index 655a4c52b8c3..1ad8bf076cfc 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -1514,11 +1514,13 @@ static void inode_decr_space(struct inode *inode, qsize_t number, int reserve)
1514/* 1514/*
1515 * This operation can block, but only after everything is updated 1515 * This operation can block, but only after everything is updated
1516 */ 1516 */
1517int __dquot_alloc_space(struct inode *inode, qsize_t number, 1517int __dquot_alloc_space(struct inode *inode, qsize_t number, int flags)
1518 int warn, int reserve)
1519{ 1518{
1520 int cnt, ret = 0; 1519 int cnt, ret = 0;
1521 char warntype[MAXQUOTAS]; 1520 char warntype[MAXQUOTAS];
1521 int warn = flags & DQUOT_SPACE_WARN;
1522 int reserve = flags & DQUOT_SPACE_RESERVE;
1523 int nofail = flags & DQUOT_SPACE_NOFAIL;
1522 1524
1523 /* 1525 /*
1524 * First test before acquiring mutex - solves deadlocks when we 1526 * First test before acquiring mutex - solves deadlocks when we
@@ -1539,7 +1541,7 @@ int __dquot_alloc_space(struct inode *inode, qsize_t number,
1539 continue; 1541 continue;
1540 ret = check_bdq(inode->i_dquot[cnt], number, !warn, 1542 ret = check_bdq(inode->i_dquot[cnt], number, !warn,
1541 warntype+cnt); 1543 warntype+cnt);
1542 if (ret) { 1544 if (ret && !nofail) {
1543 spin_unlock(&dq_data_lock); 1545 spin_unlock(&dq_data_lock);
1544 goto out_flush_warn; 1546 goto out_flush_warn;
1545 } 1547 }
@@ -1638,10 +1640,11 @@ EXPORT_SYMBOL(dquot_claim_space_nodirty);
1638/* 1640/*
1639 * This operation can block, but only after everything is updated 1641 * This operation can block, but only after everything is updated
1640 */ 1642 */
1641void __dquot_free_space(struct inode *inode, qsize_t number, int reserve) 1643void __dquot_free_space(struct inode *inode, qsize_t number, int flags)
1642{ 1644{
1643 unsigned int cnt; 1645 unsigned int cnt;
1644 char warntype[MAXQUOTAS]; 1646 char warntype[MAXQUOTAS];
1647 int reserve = flags & DQUOT_SPACE_RESERVE;
1645 1648
1646 /* First test before acquiring mutex - solves deadlocks when we 1649 /* First test before acquiring mutex - solves deadlocks when we
1647 * re-enter the quota code and are already holding the mutex */ 1650 * re-enter the quota code and are already holding the mutex */