]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Remove excl arg to ->create inode_operation
authorNeilBrown <neil@brown.name>
Wed, 1 Jul 2026 11:51:55 +0000 (21:51 +1000)
committerChristian Brauner <brauner@kernel.org>
Fri, 31 Jul 2026 08:18:30 +0000 (10:18 +0200)
The only time that 'false' is passed as the 'excl' arg to the ->create
inode_operation is in lookup_open() when ->atomic_open is not provided
by the parent directory.
*all* directory inode_operations which do not have ->atomic_open
completely ignore the 'excl' arg.

Therefore we don't need the 'excl' arg.  Those few ->create operations
which pay attention to the arg are only ever called with a value of
'true'.

We remove that arg and change all ->create operations to behave as those
thhe arg were 'true'.

Signed-off-by: NeilBrown <neil@brown.name>
Link: https://patch.msgid.link/178290671516.27465.15984496764174914338@noble.neil.brown.name
Reviewed-by: Jori Koolstra <jkoolstra@xs4all.nl>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
53 files changed:
Documentation/filesystems/locking.rst
Documentation/filesystems/porting.rst
Documentation/filesystems/vfs.rst
fs/9p/vfs_inode.c
fs/9p/vfs_inode_dotl.c
fs/affs/affs.h
fs/affs/namei.c
fs/afs/dir.c
fs/bad_inode.c
fs/bfs/dir.c
fs/btrfs/inode.c
fs/ceph/dir.c
fs/coda/dir.c
fs/ecryptfs/inode.c
fs/efivarfs/inode.c
fs/exfat/namei.c
fs/ext2/namei.c
fs/ext4/namei.c
fs/f2fs/namei.c
fs/fat/namei_msdos.c
fs/fat/namei_vfat.c
fs/fuse/dir.c
fs/gfs2/inode.c
fs/hfs/dir.c
fs/hfsplus/dir.c
fs/hostfs/hostfs_kern.c
fs/hpfs/namei.c
fs/hugetlbfs/inode.c
fs/jffs2/dir.c
fs/jfs/namei.c
fs/minix/namei.c
fs/namei.c
fs/nfs/dir.c
fs/nfs/internal.h
fs/nilfs2/namei.c
fs/ntfs/namei.c
fs/ntfs3/namei.c
fs/ocfs2/dlmfs/dlmfs.c
fs/ocfs2/namei.c
fs/omfs/dir.c
fs/orangefs/namei.c
fs/overlayfs/dir.c
fs/ramfs/inode.c
fs/smb/client/cifsfs.h
fs/smb/client/dir.c
fs/ubifs/dir.c
fs/udf/namei.c
fs/ufs/namei.c
fs/vboxsf/dir.c
fs/xfs/xfs_iops.c
include/linux/fs.h
ipc/mqueue.c
mm/shmem.c

index 08d01bc62c319e0aea1c8ffad2e0a1ac51652583..c274c5eef733c94b535b863371c6298976acd304 100644 (file)
@@ -61,7 +61,7 @@ inode_operations
 
 prototypes::
 
-       int (*create) (struct mnt_idmap *, struct inode *,struct dentry *,umode_t, bool);
+       int (*create) (struct mnt_idmap *, struct inode *,struct dentry *,umode_t);
        struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
        int (*link) (struct dentry *,struct inode *,struct dentry *);
        int (*unlink) (struct inode *,struct dentry *);
index d13f0a23c882fc521b23cf896d3cc5d1a44b5a29..02522fbfd9686f54b6e9c91a4000e22a712d77f5 100644 (file)
@@ -1401,3 +1401,11 @@ as with d_dispose_if_unused() these are not trivial; with this variant
 of API it's more explicit, since grabbing ->d_lock is caller-side, but
 d_dispose_if_unused() had all the same issues.  It's a low-level primitive;
 use only if you have no alternative.
+
+---
+
+**mandatory**
+
+The .create inode_operation no longer receives the 'excl' arg.  It must
+always assume the file does not already exist.  If the filesystem needs
+to be involved in non-exclusive create, it should provide atomic_open.
index 7c753148af8883b4c09e5306ee79ef2bd65ebf8c..651b83b004402bcddde5ca26b95790f18d80d250 100644 (file)
@@ -415,7 +415,7 @@ As of kernel 2.6.22, the following members are defined:
 .. code-block:: c
 
        struct inode_operations {
-               int (*create) (struct mnt_idmap *, struct inode *,struct dentry *, umode_t, bool);
+               int (*create) (struct mnt_idmap *, struct inode *,struct dentry *, umode_t);
                struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
                int (*link) (struct dentry *,struct inode *,struct dentry *);
                int (*unlink) (struct inode *,struct dentry *);
index 5783d0336f96ac3676900b0f97a7783afff0acd3..e47b90e708376876dd7c3576891f8adaa5fc0546 100644 (file)
@@ -645,7 +645,6 @@ error:
  * @dir: The parent directory
  * @dentry: The name of file to be created
  * @mode: The UNIX file mode to set
- * @excl: True if the file must not yet exist
  *
  * open(.., O_CREAT) is handled in v9fs_vfs_atomic_open().  This is only called
  * for mknod(2).
@@ -654,7 +653,7 @@ error:
 
 static int
 v9fs_vfs_create(struct mnt_idmap *idmap, struct inode *dir,
-               struct dentry *dentry, umode_t mode, bool excl)
+               struct dentry *dentry, umode_t mode)
 {
        struct v9fs_session_info *v9ses = v9fs_inode2v9ses(dir);
        u32 perm = unixmode2p9mode(v9ses, mode);
index f7396d20cb6cdcb35a415ef938274724876b64f5..d17c3b6eebb22d49402761d598ab489b773e2adf 100644 (file)
@@ -213,12 +213,11 @@ int v9fs_open_to_dotl_flags(int flags)
  * @dir: directory inode that is being created
  * @dentry:  dentry that is being deleted
  * @omode: create permissions
- * @excl: True if the file must not yet exist
  *
  */
 static int
 v9fs_vfs_create_dotl(struct mnt_idmap *idmap, struct inode *dir,
-                    struct dentry *dentry, umode_t omode, bool excl)
+                    struct dentry *dentry, umode_t omode)
 {
        return v9fs_vfs_mknod_dotl(idmap, dir, dentry, omode, 0);
 }
index 44a3f69d275f96359c7628b0b90de1a1b7a77947..d6b3393633f2d99a0c61de8b39aedc66b5300720 100644 (file)
@@ -169,7 +169,7 @@ extern int  affs_hash_name(struct super_block *sb, const u8 *name, unsigned int l
 extern struct dentry *affs_lookup(struct inode *dir, struct dentry *dentry, unsigned int);
 extern int     affs_unlink(struct inode *dir, struct dentry *dentry);
 extern int     affs_create(struct mnt_idmap *idmap, struct inode *dir,
-                       struct dentry *dentry, umode_t mode, bool);
+                       struct dentry *dentry, umode_t mode);
 extern struct dentry *affs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
                        struct dentry *dentry, umode_t mode);
 extern int     affs_rmdir(struct inode *dir, struct dentry *dentry);
index c3c6532da4b0da3e332d211c9261ab711ea3a3c5..b0001084727a5d36fa59a06cb4bfcd584e6669d5 100644 (file)
@@ -243,7 +243,7 @@ affs_unlink(struct inode *dir, struct dentry *dentry)
 
 int
 affs_create(struct mnt_idmap *idmap, struct inode *dir,
-           struct dentry *dentry, umode_t mode, bool excl)
+           struct dentry *dentry, umode_t mode)
 {
        struct super_block *sb = dir->i_sb;
        struct inode    *inode;
index 498b99ccdf0e2786999cd5f8e902a086312cf689..66cc3332ef319a8b23e7d578dab3b5b89acc75cd 100644 (file)
@@ -32,7 +32,7 @@ static bool afs_lookup_one_filldir(struct dir_context *ctx, const char *name, in
 static bool afs_lookup_filldir(struct dir_context *ctx, const char *name, int nlen,
                              loff_t fpos, u64 ino, unsigned dtype);
 static int afs_create(struct mnt_idmap *idmap, struct inode *dir,
-                     struct dentry *dentry, umode_t mode, bool excl);
+                     struct dentry *dentry, umode_t mode);
 static struct dentry *afs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
                                struct dentry *dentry, umode_t mode);
 static int afs_rmdir(struct inode *dir, struct dentry *dentry);
@@ -1623,7 +1623,7 @@ static const struct afs_operation_ops afs_create_operation = {
  * create a regular file on an AFS filesystem
  */
 static int afs_create(struct mnt_idmap *idmap, struct inode *dir,
-                     struct dentry *dentry, umode_t mode, bool excl)
+                     struct dentry *dentry, umode_t mode)
 {
        struct afs_operation *op;
        struct afs_vnode *dvnode = AFS_FS_I(dir);
index acf8613f5e368ece22e4afaaf1a4684663336de5..486c40f73e51e001414078759217e33b413875a6 100644 (file)
@@ -29,7 +29,7 @@ static const struct file_operations bad_file_ops =
 
 static int bad_inode_create(struct mnt_idmap *idmap,
                            struct inode *dir, struct dentry *dentry,
-                           umode_t mode, bool excl)
+                           umode_t mode)
 {
        return -EIO;
 }
index 5b40ab09a796defdfca0489a88f418c97849d110..4c3b4db08cdefce260d60885d36ee6bcf55176ff 100644 (file)
@@ -83,7 +83,7 @@ const struct file_operations bfs_dir_operations = {
 };
 
 static int bfs_create(struct mnt_idmap *idmap, struct inode *dir,
-                     struct dentry *dentry, umode_t mode, bool excl)
+                     struct dentry *dentry, umode_t mode)
 {
        int err;
        struct inode *inode;
index 272598f6ae77afc85be4de905ef2ff3d9e296061..22c0a0e241e533ae6029842cc3319d70b03a0394 100644 (file)
@@ -6832,7 +6832,7 @@ static int btrfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
 }
 
 static int btrfs_create(struct mnt_idmap *idmap, struct inode *dir,
-                       struct dentry *dentry, umode_t mode, bool excl)
+                       struct dentry *dentry, umode_t mode)
 {
        struct inode *inode;
 
index 27ce9e55e94768e4507f266cd132c743a9ccce5b..dee4524c2336232fcc11e8b30da96c9540859ad6 100644 (file)
@@ -978,7 +978,7 @@ out:
 }
 
 static int ceph_create(struct mnt_idmap *idmap, struct inode *dir,
-                      struct dentry *dentry, umode_t mode, bool excl)
+                      struct dentry *dentry, umode_t mode)
 {
        return ceph_mknod(idmap, dir, dentry, mode, 0);
 }
index 835eb7fdfdad002a414ea051f12fa09c7c4f9275..ea710a5dbbb74bd1fb4d03b50c881ed95788336a 100644 (file)
@@ -134,7 +134,7 @@ static inline void coda_dir_drop_nlink(struct inode *dir)
 
 /* creation routines: create, mknod, mkdir, link, symlink */
 static int coda_create(struct mnt_idmap *idmap, struct inode *dir,
-                      struct dentry *de, umode_t mode, bool excl)
+                      struct dentry *de, umode_t mode)
 {
        int error;
        const char *name=de->d_name.name;
index 7aaf1913f9c6d3fe93e1272010402fb70cc4759f..525297c7ebd8c4c4a880599fdbf2ea53ecf8da24 100644 (file)
@@ -268,7 +268,7 @@ out:
 static int
 ecryptfs_create(struct mnt_idmap *idmap,
                struct inode *directory_inode, struct dentry *ecryptfs_dentry,
-               umode_t mode, bool excl)
+               umode_t mode)
 {
        struct inode *ecryptfs_inode;
        int rc;
index 95dcad83da11be80ed3a64aebf6de81931597bb2..f0d009555fc6600cc305bfa44163050915a900fd 100644 (file)
@@ -75,7 +75,7 @@ static bool efivarfs_valid_name(const char *str, int len)
 }
 
 static int efivarfs_create(struct mnt_idmap *idmap, struct inode *dir,
-                          struct dentry *dentry, umode_t mode, bool excl)
+                          struct dentry *dentry, umode_t mode)
 {
        struct inode *inode = NULL;
        struct efivar_entry *var;
index b7d5e44ad38eeedf46f6247a26555b6875d22f77..cd9c9eca58f86e43693ba1661a9135e7ea8c59fd 100644 (file)
@@ -538,7 +538,7 @@ out:
 }
 
 static int exfat_create(struct mnt_idmap *idmap, struct inode *dir,
-                       struct dentry *dentry, umode_t mode, bool excl)
+                       struct dentry *dentry, umode_t mode)
 {
        struct super_block *sb = dir->i_sb;
        struct inode *inode;
index 0d09d22fe70862569d93f52e5280dcefec544015..742a78e165d48ef5abd46010ff467c655e1ade69 100644 (file)
@@ -99,7 +99,7 @@ struct dentry *ext2_get_parent(struct dentry *child)
  */
 static int ext2_create (struct mnt_idmap * idmap,
                        struct inode * dir, struct dentry * dentry,
-                       umode_t mode, bool excl)
+                       umode_t mode)
 {
        struct inode *inode;
        int err;
index cc49ae04a6f649dc563cca010c6d314cb4cbf515..c3de64d2a2df20fec97163b9f49c168428c68291 100644 (file)
@@ -2811,7 +2811,7 @@ static int ext4_add_nondir(handle_t *handle,
  * with d_instantiate().
  */
 static int ext4_create(struct mnt_idmap *idmap, struct inode *dir,
-                      struct dentry *dentry, umode_t mode, bool excl)
+                      struct dentry *dentry, umode_t mode)
 {
        handle_t *handle;
        struct inode *inode;
index cac03b8e91a15e1a7d5d4682ec3de3c8285ea07f..648681c5ba5016e37a4919a40640f59242f1cb88 100644 (file)
@@ -366,7 +366,7 @@ fail_drop:
 }
 
 static int f2fs_create(struct mnt_idmap *idmap, struct inode *dir,
-                      struct dentry *dentry, umode_t mode, bool excl)
+                      struct dentry *dentry, umode_t mode)
 {
        struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
        struct f2fs_lock_context lc;
index 0fd2971ad4b13143a5b4fa1e1e403904fa6bf38a..9f2a2e9a9ce8eab6eae1cbfe4dfa27be7d015506 100644 (file)
@@ -262,7 +262,7 @@ static int msdos_add_entry(struct inode *dir, const unsigned char *name,
 
 /***** Create a file */
 static int msdos_create(struct mnt_idmap *idmap, struct inode *dir,
-                       struct dentry *dentry, umode_t mode, bool excl)
+                       struct dentry *dentry, umode_t mode)
 {
        struct super_block *sb = dir->i_sb;
        struct inode *inode = NULL;
index e909447873e364f6343f47d49192a6de5d81e58c..139d3ef4bfaeb850d873ab3e31a8b72a9a441ae8 100644 (file)
@@ -755,7 +755,7 @@ error:
 }
 
 static int vfat_create(struct mnt_idmap *idmap, struct inode *dir,
-                      struct dentry *dentry, umode_t mode, bool excl)
+                      struct dentry *dentry, umode_t mode)
 {
        struct super_block *sb = dir->i_sb;
        struct inode *inode;
index 0e2a1039fa43ea6766b60a3f85a56f2dbfca9369..0efb3141f7f70afdd311fcf34f921f185b0faf93 100644 (file)
@@ -1084,7 +1084,7 @@ static int fuse_mknod(struct mnt_idmap *idmap, struct inode *dir,
 }
 
 static int fuse_create(struct mnt_idmap *idmap, struct inode *dir,
-                      struct dentry *entry, umode_t mode, bool excl)
+                      struct dentry *entry, umode_t mode)
 {
        return fuse_mknod(idmap, dir, entry, mode, 0);
 }
index 8a77794bbd4afc2badc9be1bd7b692a32ca89cdb..17bfa283b320b4ebb6c6a721e772c6a1255978cf 100644 (file)
@@ -963,15 +963,14 @@ fail:
  * @dir: The directory in which to create the file
  * @dentry: The dentry of the new file
  * @mode: The mode of the new file
- * @excl: Force fail if inode exists
  *
  * Returns: errno
  */
 
 static int gfs2_create(struct mnt_idmap *idmap, struct inode *dir,
-                      struct dentry *dentry, umode_t mode, bool excl)
+                      struct dentry *dentry, umode_t mode)
 {
-       return gfs2_create_inode(dir, dentry, NULL, S_IFREG | mode, 0, NULL, 0, excl);
+       return gfs2_create_inode(dir, dentry, NULL, S_IFREG | mode, 0, NULL, 0, 1);
 }
 
 /**
index e13450bb933ebdf09df6c48e64d6ff38843365a1..93edc5a80c813d724b96f3f17e8187984b5bb9d6 100644 (file)
@@ -184,7 +184,7 @@ static int hfs_dir_release(struct inode *inode, struct file *file)
  * the directory and the name (and its length) of the new file.
  */
 static int hfs_create(struct mnt_idmap *idmap, struct inode *dir,
-                     struct dentry *dentry, umode_t mode, bool excl)
+                     struct dentry *dentry, umode_t mode)
 {
        struct inode *inode;
        int res;
index 8bf6c7cdd9a865d92e39c9226eeb2203ccd33f85..f0aae2cd6fcfdce9b32fbe0cfd993c141e1b6a3d 100644 (file)
@@ -562,7 +562,7 @@ out:
 }
 
 static int hfsplus_create(struct mnt_idmap *idmap, struct inode *dir,
-                         struct dentry *dentry, umode_t mode, bool excl)
+                         struct dentry *dentry, umode_t mode)
 {
        return hfsplus_mknod(&nop_mnt_idmap, dir, dentry, mode, 0);
 }
index abe86d72d9ef7552213575a8064d8207e464d139..7add056d47d8f0c08be2ba80204d9d054a16bba3 100644 (file)
@@ -593,7 +593,7 @@ static struct inode *hostfs_iget(struct super_block *sb, char *name)
 }
 
 static int hostfs_create(struct mnt_idmap *idmap, struct inode *dir,
-                        struct dentry *dentry, umode_t mode, bool excl)
+                        struct dentry *dentry, umode_t mode)
 {
        struct inode *inode;
        char *name;
index 353e13a615f56664638f08a3408f90a727f5458b..809113d8248d50c0eaa57047b6c4bd87b9a5c6be 100644 (file)
@@ -129,7 +129,7 @@ bail:
 }
 
 static int hpfs_create(struct mnt_idmap *idmap, struct inode *dir,
-                      struct dentry *dentry, umode_t mode, bool excl)
+                      struct dentry *dentry, umode_t mode)
 {
        const unsigned char *name = dentry->d_name.name;
        unsigned len = dentry->d_name.len;
index 216e1a0dd0b23749977f2c0de181d65797aeae2a..16d8437aed51bb5a0ca33af2c46b973079ba2bb1 100644 (file)
@@ -979,7 +979,7 @@ static struct dentry *hugetlbfs_mkdir(struct mnt_idmap *idmap, struct inode *dir
 
 static int hugetlbfs_create(struct mnt_idmap *idmap,
                            struct inode *dir, struct dentry *dentry,
-                           umode_t mode, bool excl)
+                           umode_t mode)
 {
        return hugetlbfs_mknod(idmap, dir, dentry, mode | S_IFREG, 0);
 }
index c4088c3b4ac0362074cfa186c04f9c3afcccdff2..3d4695b838ed06070300d1ca5fd879613aa651a7 100644 (file)
@@ -26,7 +26,7 @@
 static int jffs2_readdir (struct file *, struct dir_context *);
 
 static int jffs2_create (struct mnt_idmap *, struct inode *,
-                        struct dentry *, umode_t, bool);
+                        struct dentry *, umode_t);
 static struct dentry *jffs2_lookup (struct inode *,struct dentry *,
                                    unsigned int);
 static int jffs2_link (struct dentry *,struct inode *,struct dentry *);
@@ -163,7 +163,7 @@ static int jffs2_readdir(struct file *file, struct dir_context *ctx)
 
 
 static int jffs2_create(struct mnt_idmap *idmap, struct inode *dir_i,
-                       struct dentry *dentry, umode_t mode, bool excl)
+                       struct dentry *dentry, umode_t mode)
 {
        struct jffs2_raw_inode *ri;
        struct jffs2_inode_info *f, *dir_f;
index 442d6267926227b191bd46601056fc28f069ae34..2cf4e280ee185ad21b24f60b80f595ac5b75a7fa 100644 (file)
@@ -61,7 +61,7 @@ static inline void free_ea_wmap(struct inode *inode)
  *
  */
 static int jfs_create(struct mnt_idmap *idmap, struct inode *dip,
-                     struct dentry *dentry, umode_t mode, bool excl)
+                     struct dentry *dentry, umode_t mode)
 {
        int rc = 0;
        tid_t tid;              /* transaction id */
index 263e4ba8b1c822c388070a9ed3e123f272fcbe61..79e591bdfdc10de9719ae107e71daca28305b7f9 100644 (file)
@@ -64,7 +64,7 @@ static int minix_tmpfile(struct mnt_idmap *idmap, struct inode *dir,
 }
 
 static int minix_create(struct mnt_idmap *idmap, struct inode *dir,
-                       struct dentry *dentry, umode_t mode, bool excl)
+                       struct dentry *dentry, umode_t mode)
 {
        return minix_mknod(&nop_mnt_idmap, dir, dentry, mode, 0);
 }
index a129bc7129a1cc0d3a66d491ef506c92db0d5e31..6db5b7e8547bc6aa1718c87972bc42c82640392c 100644 (file)
@@ -4199,7 +4199,7 @@ int vfs_create(struct mnt_idmap *idmap, struct dentry *dentry, umode_t mode,
        error = try_break_deleg(dir, LEASE_BREAK_DIR_CREATE, di);
        if (error)
                return error;
-       error = dir->i_op->create(idmap, dir, dentry, mode, true);
+       error = dir->i_op->create(idmap, dir, dentry, mode);
        if (!error)
                fsnotify_create(dir, dentry);
        return error;
@@ -4564,8 +4564,7 @@ retry:
                goto out_dput;
        }
 
-       error = dir_inode->i_op->create(idmap, dir_inode, dentry,
-                                       mode, open_flag & O_EXCL);
+       error = dir_inode->i_op->create(idmap, dir_inode, dentry, mode);
        if (error)
                goto out_dput;
 out:
index c7b723c18620c9fd096bd781a67842c73bc814bd..2830ddc416cf75fbf00b967f77964cd3054479d9 100644 (file)
@@ -2427,9 +2427,9 @@ out_err:
 }
 
 int nfs_create(struct mnt_idmap *idmap, struct inode *dir,
-              struct dentry *dentry, umode_t mode, bool excl)
+              struct dentry *dentry, umode_t mode)
 {
-       return nfs_do_create(dir, dentry, mode, excl ? O_EXCL : 0);
+       return nfs_do_create(dir, dentry, mode, O_EXCL);
 }
 EXPORT_SYMBOL_GPL(nfs_create);
 
index acaeff7ddfdf70f4d6126566b248c19d55f08302..dd77d5e80d7b93b1cc8cf267747509bd4582d14a 100644 (file)
@@ -395,7 +395,7 @@ extern unsigned long nfs_access_cache_scan(struct shrinker *shrink,
 struct dentry *nfs_lookup(struct inode *, struct dentry *, unsigned int);
 void nfs_d_prune_case_insensitive_aliases(struct inode *inode);
 int nfs_create(struct mnt_idmap *, struct inode *, struct dentry *,
-              umode_t, bool);
+              umode_t);
 struct dentry *nfs_mkdir(struct mnt_idmap *, struct inode *, struct dentry *,
                         umode_t);
 int nfs_rmdir(struct inode *, struct dentry *);
index e2fe95de3d71caef6746573ee7981c09d6a5b43c..0e0a9850ff76dc5da5b45026b3151730976fd80e 100644 (file)
@@ -86,7 +86,7 @@ nilfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
  * with d_instantiate().
  */
 static int nilfs_create(struct mnt_idmap *idmap, struct inode *dir,
-                       struct dentry *dentry, umode_t mode, bool excl)
+                       struct dentry *dentry, umode_t mode)
 {
        struct inode *inode;
        struct nilfs_transaction_info ti;
index a19626a135bd7fe957c46f85b491c54ca68e5c10..b4dc6da226596bad8db9fc6bbec8d401c147187a 100644 (file)
@@ -736,7 +736,7 @@ err_out:
 }
 
 static int ntfs_create(struct mnt_idmap *idmap, struct inode *dir,
-               struct dentry *dentry, umode_t mode, bool excl)
+               struct dentry *dentry, umode_t mode)
 {
        struct ntfs_volume *vol = NTFS_SB(dir->i_sb);
        struct ntfs_inode *ni;
index c59de5f2fa977120e74ac39be3ae6c1e52093cec..6d032b22c97daf96be92b87b0f960a5f8539de3d 100644 (file)
@@ -105,7 +105,7 @@ static struct dentry *ntfs_lookup(struct inode *dir, struct dentry *dentry,
  * ntfs_create - inode_operations::create
  */
 static int ntfs_create(struct mnt_idmap *idmap, struct inode *dir,
-                      struct dentry *dentry, umode_t mode, bool excl)
+                      struct dentry *dentry, umode_t mode)
 {
        return ntfs_create_inode(idmap, dir, dentry, NULL, S_IFREG | mode, 0,
                                 NULL, 0, NULL);
index 5821e33df78fd92fabc7fe7fa1c3b3c62c50f9f8..f0124f81df29b00b7e97d5b4b9e4a08314532792 100644 (file)
@@ -453,8 +453,7 @@ bail:
 static int dlmfs_create(struct mnt_idmap *idmap,
                        struct inode *dir,
                        struct dentry *dentry,
-                       umode_t mode,
-                       bool excl)
+                       umode_t mode)
 {
        int status = 0;
        struct inode *inode;
index 1277666c77cd2d4446ba5cb92018a5b0d78d22b8..12a1fef3ee74e6f0cc93ac1f788fafb0265cb117 100644 (file)
@@ -667,8 +667,7 @@ static struct dentry *ocfs2_mkdir(struct mnt_idmap *idmap,
 static int ocfs2_create(struct mnt_idmap *idmap,
                        struct inode *dir,
                        struct dentry *dentry,
-                       umode_t mode,
-                       bool excl)
+                       umode_t mode)
 {
        int ret;
 
index 2ed541fccf331d796805dd1594fbf05c1f7f3b9a..a09a98f7e30bc66deca60725f9462d081b5e4784 100644 (file)
@@ -286,7 +286,7 @@ static struct dentry *omfs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
 }
 
 static int omfs_create(struct mnt_idmap *idmap, struct inode *dir,
-                      struct dentry *dentry, umode_t mode, bool excl)
+                      struct dentry *dentry, umode_t mode)
 {
        return omfs_add_node(dir, dentry, mode | S_IFREG);
 }
index 75e65e72c2d64614fc71ab26a47abce18fc927ee..91f97db18971bfa4811febc22d70fb674e74f12d 100644 (file)
@@ -18,8 +18,7 @@
 static int orangefs_create(struct mnt_idmap *idmap,
                        struct inode *dir,
                        struct dentry *dentry,
-                       umode_t mode,
-                       bool exclusive)
+                       umode_t mode)
 {
        struct orangefs_inode_s *parent = ORANGEFS_I(dir);
        struct orangefs_kernel_op_s *new_op;
index a033743dbf5159a767808a36fb745f7797e143d0..88bcf98d287d1e2fd4075be73af8b0ff9237ecf9 100644 (file)
@@ -732,7 +732,7 @@ out:
 }
 
 static int ovl_create(struct mnt_idmap *idmap, struct inode *dir,
-                     struct dentry *dentry, umode_t mode, bool excl)
+                     struct dentry *dentry, umode_t mode)
 {
        return ovl_create_object(dentry, (mode & 07777) | S_IFREG, 0, NULL);
 }
index 3987639ed132c6c8752bfc29516a57a1cfb560c5..0f52ba22aac04c436c7ada1cc8ee4d017a59b5c4 100644 (file)
@@ -128,7 +128,7 @@ static struct dentry *ramfs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
 }
 
 static int ramfs_create(struct mnt_idmap *idmap, struct inode *dir,
-                       struct dentry *dentry, umode_t mode, bool excl)
+                       struct dentry *dentry, umode_t mode)
 {
        return ramfs_mknod(&nop_mnt_idmap, dir, dentry, mode | S_IFREG, 0);
 }
index 901e1340c986fb6092d48f8368c3c53bc0a73a3b..bcf2ff87da2d5c169dce274890b32f9789c098f1 100644 (file)
@@ -54,7 +54,7 @@ void cifs_sb_deactive(struct super_block *sb);
 extern const struct inode_operations cifs_dir_inode_ops;
 struct inode *cifs_root_iget(struct super_block *sb);
 int cifs_create(struct mnt_idmap *idmap, struct inode *dir,
-               struct dentry *direntry, umode_t mode, bool excl);
+               struct dentry *direntry, umode_t mode);
 int cifs_atomic_open(struct inode *dir, struct dentry *direntry,
                     struct file *file, unsigned int oflags, umode_t mode);
 int cifs_tmpfile(struct mnt_idmap *idmap, struct inode *dir,
index 88a4a1787ff0479fdf0d18d6c7643f6d0b760279..7803bd5bd01f80620fcf811615c321da79edd0cc 100644 (file)
@@ -645,7 +645,7 @@ out_free_xid:
  * hashed-positive by calling d_instantiate().
  */
 int cifs_create(struct mnt_idmap *idmap, struct inode *dir,
-               struct dentry *direntry, umode_t mode, bool excl)
+               struct dentry *direntry, umode_t mode)
 {
        struct cifs_sb_info *cifs_sb = CIFS_SB(dir);
        int rc;
index 86d41e077e4d621dbb8c448acd0065c8ac7ae225..fd8df10547bf426fcfa973c6126e727e012936d0 100644 (file)
@@ -303,7 +303,7 @@ static int ubifs_prepare_create(struct inode *dir, struct dentry *dentry,
 }
 
 static int ubifs_create(struct mnt_idmap *idmap, struct inode *dir,
-                       struct dentry *dentry, umode_t mode, bool excl)
+                       struct dentry *dentry, umode_t mode)
 {
        struct inode *inode;
        struct ubifs_info *c = dir->i_sb->s_fs_info;
index 9a3b7cef360648e9623fabe2127939f55d7b787f..fd9b6f16f61462857c60c0d10beb96ddb137e30a 100644 (file)
@@ -371,7 +371,7 @@ static int udf_add_nondir(struct dentry *dentry, struct inode *inode)
 }
 
 static int udf_create(struct mnt_idmap *idmap, struct inode *dir,
-                     struct dentry *dentry, umode_t mode, bool excl)
+                     struct dentry *dentry, umode_t mode)
 {
        struct inode *inode = udf_new_inode(dir, mode);
 
index 5b3c85c9324298f4ff6aa3d4feeb962ce5ede539..5012e056200aca671364d34a7faf647e6747e1d2 100644 (file)
@@ -70,8 +70,7 @@ static struct dentry *ufs_lookup(struct inode * dir, struct dentry *dentry, unsi
  * with d_instantiate(). 
  */
 static int ufs_create (struct mnt_idmap * idmap,
-               struct inode * dir, struct dentry * dentry, umode_t mode,
-               bool excl)
+               struct inode * dir, struct dentry * dentry, umode_t mode)
 {
        struct inode *inode;
 
index c5bd3271aa9616f6671cdf076a0ce504a7cab5bf..0b9eab157432dfdf3d45eb633253fdb27bb9dd96 100644 (file)
@@ -298,9 +298,9 @@ out:
 
 static int vboxsf_dir_mkfile(struct mnt_idmap *idmap,
                             struct inode *parent, struct dentry *dentry,
-                            umode_t mode, bool excl)
+                            umode_t mode)
 {
-       return vboxsf_dir_create(parent, dentry, mode, false, excl, NULL);
+       return vboxsf_dir_create(parent, dentry, mode, false, true, NULL);
 }
 
 static struct dentry *vboxsf_dir_mkdir(struct mnt_idmap *idmap,
index 6339f4956ecb398aca0d462763ece464fe22633d..e48f9e5a1b8a182a7616899bfb2eeea8f26056ed 100644 (file)
@@ -293,8 +293,7 @@ xfs_vn_create(
        struct mnt_idmap        *idmap,
        struct inode            *dir,
        struct dentry           *dentry,
-       umode_t                 mode,
-       bool                    flags)
+       umode_t                 mode)
 {
        return xfs_generic_create(idmap, dir, dentry, mode, 0, NULL);
 }
@@ -338,7 +337,7 @@ STATIC struct dentry *
 xfs_vn_ci_lookup(
        struct inode    *dir,
        struct dentry   *dentry,
-       unsigned int flags)
+       unsigned int    flags)
 {
        struct xfs_inode *ip;
        struct xfs_name xname;
index d10897b3a1e35017d0286a822106f5fd4b0d7edd..1b7c40b2fa6de35b5994e8350db0a45f873bb36c 100644 (file)
@@ -2002,7 +2002,7 @@ struct inode_operations {
        int (*readlink) (struct dentry *, char __user *,int);
 
        int (*create) (struct mnt_idmap *, struct inode *,struct dentry *,
-                      umode_t, bool);
+                      umode_t);
        int (*link) (struct dentry *,struct inode *,struct dentry *);
        int (*unlink) (struct inode *,struct dentry *);
        int (*symlink) (struct mnt_idmap *, struct inode *,struct dentry *,
index 4798b375972bf468a0436adaffe5be22568678c5..2dddb97f2f8a5547a81573a3fea52cfb282b1cde 100644 (file)
@@ -608,7 +608,7 @@ out_unlock:
 }
 
 static int mqueue_create(struct mnt_idmap *idmap, struct inode *dir,
-                        struct dentry *dentry, umode_t mode, bool excl)
+                        struct dentry *dentry, umode_t mode)
 {
        return mqueue_create_attr(dentry, mode, NULL);
 }
index b51f83c970bb37340f2fbf646cb549991235253e..5789a0f5a3463bea274e6c8881ca421f65abfc05 100644 (file)
@@ -3864,7 +3864,7 @@ static struct dentry *shmem_mkdir(struct mnt_idmap *idmap, struct inode *dir,
 }
 
 static int shmem_create(struct mnt_idmap *idmap, struct inode *dir,
-                       struct dentry *dentry, umode_t mode, bool excl)
+                       struct dentry *dentry, umode_t mode)
 {
        return shmem_mknod(idmap, dir, dentry, mode | S_IFREG, 0);
 }