diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c index 9bafa3c7a5ff7381995b27345ab9a25f591448e6..97caf47507d08e16a3f17c87c73fcdcc8b40fd17 100644 --- a/fs/ntfs3/inode.c +++ b/fs/ntfs3/inode.c @@ -565,13 +565,17 @@ static noinline int ntfs_get_block_vbo(struct inode *inode, u64 vbo, } if (is_resident(ni)) { - ni_lock(ni); - err = attr_data_read_resident(ni, page); - ni_unlock(ni); - - if (!err) - set_buffer_uptodate(bh); bh->b_size = block_size; + if (!page) { + err = 0; + } else { + ni_lock(ni); + err = attr_data_read_resident(ni, page); + ni_unlock(ni); + + if (!err) + set_buffer_uptodate(bh); + } return err; }