Message ID | 87bo7jh8a5.fsf@elisp.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On thu, 06 Jun 2013 18:56:34 +0900, naota@elisp.net wrote: > There is a path where btrfs_drop_inode() is called with its inode's root > is NULL: In btrfs_new_inode(), when btrfs_set_inode_index() fails, > iput() is called. We should handle this case before taking look at the > root->root_item. > > Signed-off-by: Naohiro Aota <naota@elisp.net> Reviewed-by: Miao Xie <miaox@cn.fujitsu.com> > --- > fs/btrfs/inode.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c > index af978f7..17f3064 100644 > --- a/fs/btrfs/inode.c > +++ b/fs/btrfs/inode.c > @@ -8012,6 +8012,9 @@ int btrfs_drop_inode(struct inode *inode) > { > struct btrfs_root *root = BTRFS_I(inode)->root; > > + if (root == NULL) > + return 1; > + > /* the snap/subvol tree is on deleting */ > if (btrfs_root_refs(&root->root_item) == 0 && > root != root->fs_info->tree_root) > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index af978f7..17f3064 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -8012,6 +8012,9 @@ int btrfs_drop_inode(struct inode *inode) { struct btrfs_root *root = BTRFS_I(inode)->root; + if (root == NULL) + return 1; + /* the snap/subvol tree is on deleting */ if (btrfs_root_refs(&root->root_item) == 0 && root != root->fs_info->tree_root)
There is a path where btrfs_drop_inode() is called with its inode's root is NULL: In btrfs_new_inode(), when btrfs_set_inode_index() fails, iput() is called. We should handle this case before taking look at the root->root_item. Signed-off-by: Naohiro Aota <naota@elisp.net> --- fs/btrfs/inode.c | 3 +++ 1 file changed, 3 insertions(+)