Message ID | CAPgLHd-ikKq2V2aZ-u1AJAdaxma19DEifui+q+FxmX0pAh_mLA@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Sep 21, 2012 at 12:42:02PM +0800, Wei Yongjun wrote: > From: Wei Yongjun <yongjun_wei@trendmicro.com.cn> > > In case of error, the function btrfs_read_fs_root_no_name() returns > ERR_PTR() and never returns NULL pointer. The NULL test in the return > value check should be replaced with IS_ERR(), and remove useless > NULL test. Good catch. Also please update the other remaining case in disk-io.c:open_ctree() 2587 fs_info->fs_root = btrfs_read_fs_root_no_name(fs_info, &location); 2588 if (!fs_info->fs_root) 2589 goto fail_qgroup; 2590 if (IS_ERR(fs_info->fs_root)) { 2591 err = PTR_ERR(fs_info->fs_root); 2592 goto fail_qgroup; 2593 } > dpatch engine is used to auto generated this patch. > (https://github.com/weiyj/dpatch) I've played with it, looks nice, although it's full of hardcoded paths. I'd like to run it directly from the git repo. Can you please fix that? No patch from me, because I hadcoded my paths :) It would be great if we can run a set of .cocci scripts that would verify code invariants (limited to cocci capabilities, but eg. the IS_ERR is a good example) and add new ones eventually over time. david -- 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/send.c b/fs/btrfs/send.c index fb5ffe9..a617451 100644 --- a/fs/btrfs/send.c +++ b/fs/btrfs/send.c @@ -4501,10 +4501,6 @@ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_) key.type = BTRFS_ROOT_ITEM_KEY; key.offset = (u64)-1; clone_root = btrfs_read_fs_root_no_name(fs_info, &key); - if (!clone_root) { - ret = -EINVAL; - goto out; - } if (IS_ERR(clone_root)) { ret = PTR_ERR(clone_root); goto out; @@ -4520,8 +4516,8 @@ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_) key.type = BTRFS_ROOT_ITEM_KEY; key.offset = (u64)-1; sctx->parent_root = btrfs_read_fs_root_no_name(fs_info, &key); - if (!sctx->parent_root) { - ret = -EINVAL; + if (IS_ERR(sctx->parent_root)) { + ret = PTR_ERR(sctx->parent_root); goto out; } }