From 675b5da0145fb4b54c4d9f6ea0106df844e4f75d Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Thu, 3 Jul 2003 22:06:21 -0700 Subject: [PATCH] Pass 'nameidata' to ->create() - Make the VFS pass the struct nameidata as an optional argument to the create inode operation. - Patch vfs_create() to take a struct nameidata as an optional argument. --- include/linux/affs_fs.h | 2 +- include/linux/fs.h | 4 ++-- include/linux/hfs_fs.h | 2 +- include/linux/msdos_fs.h | 4 ++-- include/linux/qnx4_fs.h | 3 +-- 5 files changed, 7 insertions(+), 8 deletions(-) (limited to 'include/linux') diff --git a/include/linux/affs_fs.h b/include/linux/affs_fs.h index 837fe37aba93..c849309b1131 100644 --- a/include/linux/affs_fs.h +++ b/include/linux/affs_fs.h @@ -43,7 +43,7 @@ extern int affs_init_bitmap(struct super_block *sb); extern int affs_hash_name(struct super_block *sb, const u8 *name, unsigned int len); extern struct dentry *affs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *); extern int affs_unlink(struct inode *dir, struct dentry *dentry); -extern int affs_create(struct inode *dir, struct dentry *dentry, int mode); +extern int affs_create(struct inode *dir, struct dentry *dentry, int mode, struct nameidata *); extern int affs_mkdir(struct inode *dir, struct dentry *dentry, int mode); extern int affs_rmdir(struct inode *dir, struct dentry *dentry); extern int affs_link(struct dentry *olddentry, struct inode *dir, diff --git a/include/linux/fs.h b/include/linux/fs.h index 3ddf4c4edfb7..66cf193c6e64 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -639,7 +639,7 @@ static inline void unlock_super(struct super_block * sb) /* * VFS helper functions.. */ -extern int vfs_create(struct inode *, struct dentry *, int); +extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *); extern int vfs_mkdir(struct inode *, struct dentry *, int); extern int vfs_mknod(struct inode *, struct dentry *, int, dev_t); extern int vfs_symlink(struct inode *, struct dentry *, const char *); @@ -730,7 +730,7 @@ struct file_operations { }; struct inode_operations { - int (*create) (struct inode *,struct dentry *,int); + int (*create) (struct inode *,struct dentry *,int, struct nameidata *); struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *); int (*link) (struct dentry *,struct inode *,struct dentry *); int (*unlink) (struct inode *,struct dentry *); diff --git a/include/linux/hfs_fs.h b/include/linux/hfs_fs.h index 40971822e3e4..7bebd13150dd 100644 --- a/include/linux/hfs_fs.h +++ b/include/linux/hfs_fs.h @@ -234,7 +234,7 @@ extern struct hfs_cat_entry *hfs_cat_get(struct hfs_mdb *, const struct hfs_cat_key *); /* dir.c */ -extern int hfs_create(struct inode *, struct dentry *, int); +extern int hfs_create(struct inode *, struct dentry *, int, struct nameidata *); extern int hfs_mkdir(struct inode *, struct dentry *, int); extern int hfs_unlink(struct inode *, struct dentry *); extern int hfs_rmdir(struct inode *, struct dentry *); diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h index d1b00ab916ce..1ce9ba2f57b0 100644 --- a/include/linux/msdos_fs.h +++ b/include/linux/msdos_fs.h @@ -308,7 +308,7 @@ extern int fat_scan(struct inode *dir, const char *name, /* msdos/namei.c - these are for Umsdos */ extern struct dentry *msdos_lookup(struct inode *dir, struct dentry *, struct nameidata *); -extern int msdos_create(struct inode *dir, struct dentry *dentry, int mode); +extern int msdos_create(struct inode *dir, struct dentry *dentry, int mode, struct nameidata *); extern int msdos_rmdir(struct inode *dir, struct dentry *dentry); extern int msdos_mkdir(struct inode *dir, struct dentry *dentry, int mode); extern int msdos_unlink(struct inode *dir, struct dentry *dentry); @@ -318,7 +318,7 @@ extern int msdos_fill_super(struct super_block *sb, void *data, int silent); /* vfat/namei.c - these are for dmsdos */ extern struct dentry *vfat_lookup(struct inode *dir, struct dentry *, struct nameidata *); -extern int vfat_create(struct inode *dir, struct dentry *dentry, int mode); +extern int vfat_create(struct inode *dir, struct dentry *dentry, int mode, struct nameidata *); extern int vfat_rmdir(struct inode *dir, struct dentry *dentry); extern int vfat_unlink(struct inode *dir, struct dentry *dentry); extern int vfat_mkdir(struct inode *dir, struct dentry *dentry, int mode); diff --git a/include/linux/qnx4_fs.h b/include/linux/qnx4_fs.h index 2aa7a7ca3d54..53233c8fb3ef 100644 --- a/include/linux/qnx4_fs.h +++ b/include/linux/qnx4_fs.h @@ -117,14 +117,13 @@ extern unsigned long qnx4_block_map(struct inode *inode, long iblock); extern struct buffer_head *qnx4_getblk(struct inode *, int, int); extern struct buffer_head *qnx4_bread(struct inode *, int, int); -extern int qnx4_create(struct inode *dir, struct dentry *dentry, int mode); extern struct inode_operations qnx4_file_inode_operations; extern struct inode_operations qnx4_dir_inode_operations; extern struct file_operations qnx4_file_operations; extern struct file_operations qnx4_dir_operations; extern int qnx4_is_free(struct super_block *sb, long block); extern int qnx4_set_bitmap(struct super_block *sb, long block, int busy); -extern int qnx4_create(struct inode *inode, struct dentry *dentry, int mode); +extern int qnx4_create(struct inode *inode, struct dentry *dentry, int mode, struct nameidata *nd); extern void qnx4_truncate(struct inode *inode); extern void qnx4_free_inode(struct inode *inode); extern int qnx4_unlink(struct inode *dir, struct dentry *dentry); -- cgit v1.2.3