Unionfs: return EINVAL in setattr on error
authorErez Zadok <ezk@cs.sunysb.edu>
Fri, 19 Sep 2008 05:28:37 +0000 (01:28 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Fri, 19 Sep 2008 05:28:37 +0000 (01:28 -0400)
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/unionfs/inode.c

index 8c0da3f9e9c7728ad4635ed556b5d4367da3740c..097fa6aade1cd3a49126298ea3e03bfa392c9e5c 100644 (file)
@@ -895,7 +895,10 @@ static int unionfs_setattr(struct dentry *dentry, struct iattr *ia)
        inode = dentry->d_inode;
 
        lower_dentry = unionfs_lower_dentry(dentry);
-       BUG_ON(!lower_dentry);  /* should never happen after above revalidate */
+       if (!lower_dentry) { /* should never happen after above revalidate */
+               err = -EINVAL;
+               goto out;
+       }
        lower_inode = unionfs_lower_inode(inode);
 
        /* check if user has permission to change lower inode */