kernel/fs/nilfs2/gcinode.c
.. .. @@ -73,10 +73,8 @@ 73 73 struct the_nilfs *nilfs = inode->i_sb->s_fs_info; 74 74 75 75 err = nilfs_dat_translate(nilfs->ns_dat, vbn, &pbn); 76 - if (unlikely(err)) { /* -EIO, -ENOMEM, -ENOENT */77 - brelse(bh);76 + if (unlikely(err)) /* -EIO, -ENOMEM, -ENOENT */78 77 goto failed; 79 - }80 78 } 81 79 82 80 lock_buffer(bh); .. .. @@ -102,6 +100,8 @@ 102 100 failed: 103 101 unlock_page(bh->b_page); 104 102 put_page(bh->b_page); 103 + if (unlikely(err))104 + brelse(bh);105 105 return err; 106 106 } 107 107