diff --git a/[refs] b/[refs] index 87dcbffdd868..5a1ba8ffa0d9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: eb6b88d92c6df083dd09a8c471011e3788dfd7c6 +refs/heads/master: 1a65e24b0bb7dde48cac4a2bf74d5558f9e32ba7 diff --git a/trunk/fs/btrfs/ioctl.c b/trunk/fs/btrfs/ioctl.c index afbf3ac2079d..a31cd931d36e 100644 --- a/trunk/fs/btrfs/ioctl.c +++ b/trunk/fs/btrfs/ioctl.c @@ -515,7 +515,6 @@ static noinline int create_subvol(struct btrfs_root *root, BUG_ON(ret); - d_instantiate(dentry, btrfs_lookup_dentry(dir, dentry)); fail: if (async_transid) { *async_transid = trans->transid; @@ -525,6 +524,10 @@ static noinline int create_subvol(struct btrfs_root *root, } if (err && !ret) ret = err; + + if (!ret) + d_instantiate(dentry, btrfs_lookup_dentry(dir, dentry)); + return ret; }