From patchwork Thu Jun 6 09:56:34 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naohiro Aota X-Patchwork-Id: 2678481 Return-Path: X-Original-To: patchwork-linux-btrfs@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 7F4613FD4E for ; Thu, 6 Jun 2013 09:56:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932326Ab3FFJ4j (ORCPT ); Thu, 6 Jun 2013 05:56:39 -0400 Received: from mail-pb0-f41.google.com ([209.85.160.41]:49236 "EHLO mail-pb0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932168Ab3FFJ4h (ORCPT ); Thu, 6 Jun 2013 05:56:37 -0400 Received: by mail-pb0-f41.google.com with SMTP id rp2so3077016pbb.28 for ; Thu, 06 Jun 2013 02:56:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:user-agent:mime-version :content-type; bh=L4ZIRJzrFuXmHs0ZXYT6SCpT6bOZOt4mgSNvnCxh9Ls=; b=Tur29GNtWMjOpv8Hm9+Nb0RqKDF488TZOWW+nZdghDLXl0aST8VXb00HjLcUs9VQc4 5NLCJgEEYGOBXCfuMAkTWyQa5mYf/RION73ZR9/+d0UHIhYVe5vFes4A6Fn+hFXWQdW9 Ak7ij3/IhCXIo6onjoiqyWZausl2wjYgl89zW6EXMtZmUeoawNn7cpnNqV3Nn1EDzX0K ZVmPpc5WY3crwjFaPHeH3Yb1hDY1dOBgTHpkkFXgPtBc6/PSNXJmIfAeqV9S76r/WZUd 48HPEtEmIo8v52Ozxjgj/yZzXXOnODEuCtACqvdu8ouSFtug0fpTZOKes9GXNnIhTjJ3 md3A== X-Received: by 10.68.130.199 with SMTP id og7mr38217975pbb.132.1370512597436; Thu, 06 Jun 2013 02:56:37 -0700 (PDT) Received: from locke (zaq7a6684ba.zaq.ne.jp. [122.102.132.186]) by mx.google.com with ESMTPSA id sg4sm72202264pbc.7.2013.06.06.02.56.35 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Thu, 06 Jun 2013 02:56:36 -0700 (PDT) From: naota@elisp.net To: Chris Mason , linux-btrfs@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH] btrfs: Drop inode if inode root is NULL Date: Thu, 06 Jun 2013 18:56:34 +0900 Message-ID: <87bo7jh8a5.fsf@elisp.net> User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org 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 Reviewed-by: Miao Xie --- 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)