Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
[cascardo/linux.git] / fs / ext2 / balloc.c
index a8cbe1b..1c36139 100644 (file)
@@ -165,7 +165,6 @@ static void release_blocks(struct super_block *sb, int count)
                struct ext2_sb_info *sbi = EXT2_SB(sb);
 
                percpu_counter_add(&sbi->s_freeblocks_counter, count);
-               sb->s_dirt = 1;
        }
 }
 
@@ -180,7 +179,6 @@ static void group_adjust_blocks(struct super_block *sb, int group_no,
                free_blocks = le16_to_cpu(desc->bg_free_blocks_count);
                desc->bg_free_blocks_count = cpu_to_le16(free_blocks + count);
                spin_unlock(sb_bgl_lock(sbi, group_no));
-               sb->s_dirt = 1;
                mark_buffer_dirty(bh);
        }
 }
@@ -479,7 +477,7 @@ void ext2_discard_reservation(struct inode *inode)
 }
 
 /**
- * ext2_free_blocks_sb() -- Free given blocks and update quota and i_blocks
+ * ext2_free_blocks() -- Free given blocks and update quota and i_blocks
  * @inode:             inode
  * @block:             start physcial block to free
  * @count:             number of blocks to free
@@ -1193,8 +1191,9 @@ static int ext2_has_free_blocks(struct ext2_sb_info *sbi)
        free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
        root_blocks = le32_to_cpu(sbi->s_es->s_r_blocks_count);
        if (free_blocks < root_blocks + 1 && !capable(CAP_SYS_RESOURCE) &&
-               sbi->s_resuid != current_fsuid() &&
-               (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
+               !uid_eq(sbi->s_resuid, current_fsuid()) &&
+               (gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) ||
+                !in_group_p (sbi->s_resgid))) {
                return 0;
        }
        return 1;