Unionfs: dentry_open takes a struct cred now
authorErez Zadok <ezk@cs.sunysb.edu>
Tue, 13 Jan 2009 03:01:15 +0000 (22:01 -0500)
committerErez Zadok <ezk@cs.sunysb.edu>
Wed, 30 Mar 2011 23:31:47 +0000 (19:31 -0400)
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/unionfs/commonfops.c
fs/unionfs/copyup.c
fs/unionfs/dirhelper.c

index ed3604e4ea779ec9d75596bb55c06e2d1632305c..1f017372734205491b11324c600528cb22d75e27 100644 (file)
@@ -178,7 +178,7 @@ static int open_all_files(struct file *file)
                lower_file =
                        dentry_open(lower_dentry,
                                    unionfs_lower_mnt_idx(dentry, bindex),
-                                   file->f_flags);
+                                   file->f_flags, current_cred());
                if (IS_ERR(lower_file)) {
                        branchput(sb, bindex);
                        err = PTR_ERR(lower_file);
@@ -223,7 +223,7 @@ static int open_highest_file(struct file *file, bool willwrite)
        unionfs_mntget(dentry, bstart);
        lower_file = dentry_open(lower_dentry,
                                 unionfs_lower_mnt_idx(dentry, bstart),
-                                file->f_flags);
+                                file->f_flags, current_cred());
        if (IS_ERR(lower_file)) {
                err = PTR_ERR(lower_file);
                goto out;
@@ -457,7 +457,8 @@ static int __open_dir(struct inode *inode, struct file *file)
                dget(lower_dentry);
                unionfs_mntget(file->f_path.dentry, bindex);
                mnt = unionfs_lower_mnt_idx(file->f_path.dentry, bindex);
-               lower_file = dentry_open(lower_dentry, mnt, file->f_flags);
+               lower_file = dentry_open(lower_dentry, mnt, file->f_flags,
+                                        current_cred());
                if (IS_ERR(lower_file))
                        return PTR_ERR(lower_file);
 
@@ -528,7 +529,7 @@ static int __open_file(struct inode *inode, struct file *file,
        lower_file =
                dentry_open(lower_dentry,
                            unionfs_lower_mnt_idx(file->f_path.dentry, bstart),
-                           lower_flags);
+                           lower_flags, current_cred());
        if (IS_ERR(lower_file))
                return PTR_ERR(lower_file);
 
index ae6ea2bea30e7cd581330c381ec71b9cc042e456..28f897c9be4356ddf32547b7f0f733610337c658 100644 (file)
@@ -240,7 +240,7 @@ static int __copyup_reg_data(struct dentry *dentry,
        /* dentry_open calls dput and mntput if it returns an error */
        input_file = dentry_open(old_lower_dentry,
                                 unionfs_lower_mnt_idx(dentry, old_bindex),
-                                O_RDONLY | O_LARGEFILE);
+                                O_RDONLY | O_LARGEFILE, current_cred());
        if (IS_ERR(input_file)) {
                dput(old_lower_dentry);
                err = PTR_ERR(input_file);
@@ -256,7 +256,7 @@ static int __copyup_reg_data(struct dentry *dentry,
        output_mnt = unionfs_mntget(sb->s_root, new_bindex);
        branchget(sb, new_bindex);
        output_file = dentry_open(new_lower_dentry, output_mnt,
-                                 O_RDWR | O_LARGEFILE);
+                                 O_RDWR | O_LARGEFILE, current_cred());
        if (IS_ERR(output_file)) {
                err = PTR_ERR(output_file);
                goto out_close_in2;
index aa31e9161c2d337dcf76bc448b700738365311e0..0e1e5e362780fd95a556e037d841cca7a6f06c51 100644 (file)
@@ -120,7 +120,7 @@ int check_empty(struct dentry *dentry, struct dentry *parent,
                dget(lower_dentry);
                mnt = unionfs_mntget(dentry, bindex);
                branchget(sb, bindex);
-               lower_file = dentry_open(lower_dentry, mnt, O_RDONLY);
+               lower_file = dentry_open(lower_dentry, mnt, O_RDONLY, current_cred());
                if (IS_ERR(lower_file)) {
                        err = PTR_ERR(lower_file);
                        branchput(sb, bindex);