ext4: add might_sleep() annotations
authorTheodore Ts'o <tytso@mit.edu>
Thu, 4 Apr 2013 02:00:52 +0000 (22:00 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 4 Apr 2013 02:00:52 +0000 (22:00 -0400)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reviewed-by: Lukas Czerner <lczerner@redhat.com>
fs/ext4/ext4_jbd2.c
fs/ext4/mballoc.c

index 7058975e3a5505a9b19d082f4d6ba627919432ff..0e1dc9e70ce52da060f3477d0ce56e5b0b101c73 100644 (file)
@@ -43,6 +43,8 @@ handle_t *__ext4_journal_start_sb(struct super_block *sb, unsigned int line,
 {
        journal_t *journal;
 
+       might_sleep();
+
        trace_ext4_journal_start(sb, nblocks, _RET_IP_);
        if (sb->s_flags & MS_RDONLY)
                return ERR_PTR(-EROFS);
@@ -113,6 +115,8 @@ int __ext4_journal_get_write_access(const char *where, unsigned int line,
 {
        int err = 0;
 
+       might_sleep();
+
        if (ext4_handle_valid(handle)) {
                err = jbd2_journal_get_write_access(handle, bh);
                if (err)
@@ -209,6 +213,8 @@ int __ext4_handle_dirty_metadata(const char *where, unsigned int line,
 {
        int err = 0;
 
+       might_sleep();
+
        if (ext4_handle_valid(handle)) {
                err = jbd2_journal_dirty_metadata(handle, bh);
                if (err) {
index ee6614bdb63950b7481443f944ca3c87681903be..36c82a39d03fca9c9ad06176de40e05387875b76 100644 (file)
@@ -1011,6 +1011,7 @@ int ext4_mb_init_group(struct super_block *sb, ext4_group_t group)
        struct page *page;
        int ret = 0;
 
+       might_sleep();
        mb_debug(1, "init group %u\n", group);
        this_grp = ext4_get_group_info(sb, group);
        /*
@@ -1082,6 +1083,7 @@ ext4_mb_load_buddy(struct super_block *sb, ext4_group_t group,
        struct ext4_sb_info *sbi = EXT4_SB(sb);
        struct inode *inode = sbi->s_buddy_cache;
 
+       might_sleep();
        mb_debug(1, "load group %u\n", group);
 
        blocks_per_page = PAGE_CACHE_SIZE / sb->s_blocksize;
@@ -4217,6 +4219,7 @@ ext4_fsblk_t ext4_mb_new_blocks(handle_t *handle,
        unsigned int inquota = 0;
        unsigned int reserv_clstrs = 0;
 
+       might_sleep();
        sb = ar->inode->i_sb;
        sbi = EXT4_SB(sb);
 
@@ -4470,6 +4473,7 @@ void ext4_free_blocks(handle_t *handle, struct inode *inode,
        int err = 0;
        int ret;
 
+       might_sleep();
        if (bh) {
                if (block)
                        BUG_ON(block != bh->b_blocknr);