]> Git Repo - linux.git/blobdiff - fs/ext4/inode.c
ext4: Do not iput inode under running transaction
[linux.git] / fs / ext4 / inode.c
index 123e3dee7733b693451b1f563461e4aac60ae05b..516faa280ceda8d8035363f63153bbdac4901002 100644 (file)
@@ -4551,6 +4551,7 @@ static int __ext4_get_inode_loc(struct inode *inode,
        struct buffer_head      *bh;
        struct super_block      *sb = inode->i_sb;
        ext4_fsblk_t            block;
+       struct blk_plug         plug;
        int                     inodes_per_block, inode_offset;
 
        iloc->bh = NULL;
@@ -4639,6 +4640,7 @@ make_io:
                 * If we need to do any I/O, try to pre-readahead extra
                 * blocks from the inode table.
                 */
+               blk_start_plug(&plug);
                if (EXT4_SB(sb)->s_inode_readahead_blks) {
                        ext4_fsblk_t b, end, table;
                        unsigned num;
@@ -4669,6 +4671,7 @@ make_io:
                get_bh(bh);
                bh->b_end_io = end_buffer_read_sync;
                submit_bh(REQ_OP_READ, REQ_META | REQ_PRIO, bh);
+               blk_finish_plug(&plug);
                wait_on_buffer(bh);
                if (!buffer_uptodate(bh)) {
                        EXT4_ERROR_INODE_BLOCK(inode, block,
This page took 0.03262 seconds and 4 git commands to generate.