]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - fs/ext4/dir.c
ext4: allow readdir()'s of large empty directories to be interrupted
[mirror_ubuntu-artful-kernel.git] / fs / ext4 / dir.c
index 33f5e2a50cf883c43842e1c89a868fcf70c4c2a9..ebfcb8999db21eb0d221fa85e4eef9e2b7c183d4 100644 (file)
@@ -150,6 +150,11 @@ static int ext4_readdir(struct file *file, struct dir_context *ctx)
        while (ctx->pos < inode->i_size) {
                struct ext4_map_blocks map;
 
+               if (fatal_signal_pending(current)) {
+                       err = -ERESTARTSYS;
+                       goto errout;
+               }
+               cond_resched();
                map.m_lblk = ctx->pos >> EXT4_BLOCK_SIZE_BITS(sb);
                map.m_len = 1;
                err = ext4_map_blocks(NULL, inode, &map, 0);