From: Erez_Zadok Date: Tue, 17 Jul 2007 03:56:26 +0000 (-0400) Subject: Unionfs: bugfix: don't call branchget() until dentry_open succeeded X-Git-Url: https://git.fsl.cs.sunysb.edu/?a=commitdiff_plain;h=8530fe76cdba57d64d8df13a93003a664944c55d;p=unionfs-3.4.y.git Unionfs: bugfix: don't call branchget() until dentry_open succeeded If dentry_open fails, we incorrectly have incremented our branch counts which would prevent unionfs from being unmounted (EBUSY). Signed-off-by: Erez Zadok --- diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c index 46e5008fbbcb..42678a6ec1fe 100644 --- a/fs/unionfs/commonfops.c +++ b/fs/unionfs/commonfops.c @@ -216,7 +216,6 @@ static int open_highest_file(struct file *file, int willwrite) dget(lower_dentry); unionfs_mntget(dentry, bstart); - branchget(sb, bstart); lower_file = dentry_open(lower_dentry, unionfs_lower_mnt_idx(dentry, bstart), file->f_flags); @@ -224,6 +223,7 @@ static int open_highest_file(struct file *file, int willwrite) err = PTR_ERR(lower_file); goto out; } + branchget(sb, bstart); unionfs_set_lower_file(file, lower_file); /* Fix up the position. */ lower_file->f_pos = file->f_pos;