move iops where they belong
PATCH 1/1 move iops where they belong
also adds a missing .getattr for symlinks
namei.c +48 -16
@@ -116,12 +116,8 @@* ocfs_lookup() * */ -#if LINUX_VERSION_CODE >=KERNEL_VERSION (2 ,6 ,0 ) -struct dentry *ocfs_lookup (struct inode *dir,struct dentry *dentry, +static struct dentry *ocfs_lookup (struct inode *dir,struct dentry *dentry,struct nameidata *nd) -#else -struct dentry *ocfs_lookup(struct inode *dir, struct dentry *dentry) -#endif {int status;__u64 fe_off =0 ;
@@ -176,7 +172,7 @@return ret; }/* ocfs_lookup */ -int ocfs_mknod (struct inode *dir,struct dentry *dentry,int mode, +static int ocfs_mknod (struct inode *dir,struct dentry *dentry,int mode,ocfs_dev dev) {int status =0 ;
@@ -488,7 +484,7 @@* ocfs_mkdir() * */ -int ocfs_mkdir (struct inode *dir,struct dentry *dentry,int mode) +static int ocfs_mkdir (struct inode *dir,struct dentry *dentry,int mode) {int ret;
@@ -507,11 +503,7 @@* ocfs_create() * */ -#if LINUX_VERSION_CODE >=KERNEL_VERSION (2 ,6 ,0 ) -int ocfs_create (struct inode *dir, struct dentry *dentry, int mode, struct nameidata *nd) -#else -int ocfs_create (struct inode *dir, struct dentry *dentry, int mode) -#endif +static int ocfs_create (struct inode *dir,struct dentry *dentry,int mode,struct nameidata *nd) {int ret;
@@ -530,7 +522,7 @@* ocfs_link() * */ -int ocfs_link (struct dentry * old_dentry, +static int ocfs_link (struct dentry * old_dentry,struct inode * dir,struct dentry *dentry) {ocfs_journal_handle *handle =NULL ;
@@ -673,7 +665,7 @@* ocfs_unlink() * */ -int ocfs_unlink (struct inode *dir,struct dentry *dentry) +static int ocfs_unlink (struct inode *dir,struct dentry *dentry) {int status, tmpstat;int got_parent =0 , got_file =0 ;
@@ -1015,7 +1007,7 @@* ocfs_rename() * */ -int ocfs_rename (struct inode *old_dir,struct dentry *old_dentry,struct inode *new_dir,struct dentry *new_dentry) +static int ocfs_rename (struct inode *old_dir,struct dentry *old_dentry,struct inode *new_dir,struct dentry *new_dentry) {int status =0 ;struct inode *old_inode = old_dentry->d_inode;
@@ -1372,7 +1364,7 @@* ocfs_symlink() * */ -int ocfs_symlink (struct inode *dir,struct dentry *dentry,const char *symname) +static int ocfs_symlink (struct inode *dir,struct dentry *dentry,const char *symname) {ocfs_super *osb =NULL ;struct inode *inode =NULL ;
@@ -2032,3 +2024,43 @@LOG_EXIT_STATUS (status);return status; } + +#if LINUX_VERSION_CODE >KERNEL_VERSION (2 ,6 ,0 ) +struct inode_operations ocfs_dir_iops = { + .create = ocfs_create, + .lookup = ocfs_lookup, + .link = ocfs_link, + .unlink = ocfs_unlink, + .rmdir = ocfs_unlink, + .symlink = ocfs_symlink, + .mkdir = ocfs_mkdir, + .mknod = ocfs_mknod, + .rename = ocfs_rename, + .setattr = ocfs_setattr, + .getattr = ocfs_getattr, +}; +#else +static struct dentry *ocfs_lookup_24 (struct inode *dir,struct dentry *dentry) +{ +return ocfs_lookup (dir, dentry,NULL ); +} + +static int ocfs_create_24 (struct inode *dir,struct dentry *dentry,int mode) +{ + return ocfs_create(dirm dentry, mode, NULL); +} + +struct inode_operations ocfs_dir_iops = { + .create = ocfs_create_24, + .lookup = ocfs_lookup_24, + .link = ocfs_link, + .unlink = ocfs_unlink, + .rmdir = ocfs_unlink, + .symlink = ocfs_symlink, + .mkdir = ocfs_mkdir, + .mknod = ocfs_mknod, + .rename = ocfs_rename, + .setattr = ocfs_setattr, + .revalidate = ocfs_inode_revalidate, +}; +#endif
inode.c +0 -35
@@ -120,41 +120,6 @@#endif }; -static struct inode_operations ocfs_dir_iops = { - .create = ocfs_create, - .lookup = ocfs_lookup, - .link = ocfs_link, - .unlink = ocfs_unlink, - .rmdir = ocfs_unlink, - .symlink = ocfs_symlink, - .mkdir = ocfs_mkdir, - .mknod = ocfs_mknod, - .rename = ocfs_rename, - .setattr = ocfs_setattr, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) - .getattr = ocfs_getattr, -#else - .revalidate = ocfs_inode_revalidate, -#endif -}; - -static struct inode_operations ocfs_file_iops = { - .setattr = ocfs_setattr, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) - .getattr = ocfs_getattr, -#else - .revalidate = ocfs_inode_revalidate, -#endif -}; - -struct inode_operations ocfs_symlink_inode_operations = { - .readlink = page_readlink, - .follow_link = ocfs_follow_link, -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) - .revalidate = ocfs_inode_revalidate, -#endif -}; -/* * ocfs_iget() * feoff is *required*
namei.h +2 -21
@@ -29,33 +29,14 @@#ifndef OCFS2_NAMEI_H #define OCFS2_NAMEI_H +extern struct inode_operations ocfs_dir_iops; +int ocfs_check_dir_entry (struct inode *dir,struct ocfs2_dir_entry *de,struct buffer_head *bh,unsigned long offset); -#if LINUX_VERSION_CODE >=KERNEL_VERSION (2 ,6 ,0 ) -int ocfs_create (struct inode *dir,struct dentry *dentry,int mode,struct nameidata *nd); -#else -int ocfs_create (struct inode *dir,struct dentry *dentry,int mode); -#endif struct buffer_head *ocfs_find_entry (const char *name,int namelen,struct inode *dir,struct ocfs2_dir_entry **res_dir); -int ocfs_link (struct dentry *old_dentry,struct inode *dir, -struct dentry *dentry); -#if LINUX_VERSION_CODE >=KERNEL_VERSION (2 ,6 ,0 ) -struct dentry *ocfs_lookup (struct inode *dir,struct dentry *dentry, -struct nameidata *nd); -#else -struct dentry *ocfs_lookup (struct inode *dir,struct dentry *dentry); -#endif -int ocfs_mkdir (struct inode *dir,struct dentry *dentry,int mode); -int ocfs_mknod (struct inode *dir,struct dentry *dentry,int mode, -ocfs_dev dev); -int ocfs_rename (struct inode *old_dir,struct dentry *old_dentry, -struct inode *new_dir,struct dentry *new_dentry); -int ocfs_symlink (struct inode *dir,struct dentry *dentry, -const char *symname); -int ocfs_unlink (struct inode *dir,struct dentry *dentry);int ocfs_orphan_del (ocfs_super *osb,ocfs_journal_handle *handle,struct inode *orphan_dir_inode,struct inode *inode,struct buffer_head *orphan_dir_bh);
file.c +11 -0
@@ -1545,4 +1545,15 @@LOG_CLEAR_CONTEXT (); return err; } + +struct inode_operations ocfs_file_iops = { + .setattr = ocfs_setattr, + .getattr = ocfs_getattr, +}; +#else +struct inode_operations ocfs_file_iops = { + .setattr = ocfs_setattr, + .revalidate = ocfs_inode_revalidate, +};#endif +
file.h +1 -0
@@ -31,6 +31,7 @@extern struct file_operations ocfs_fops;extern struct file_operations ocfs_dops; +extern struct inode_operations ocfs_file_iops; int ocfs_extend_file (ocfs_super * osb, __u64 file_size, __u64 file_off, ocfs_journal_handle *passed_handle,
symlink.c +15 -4
@@ -43,6 +43,7 @@#include "ocfs_log.h" #include "ocfs.h" +#include "file.h" #include "symlink.h" #define OCFS_DEBUG_CONTEXT OCFS_DEBUG_CONTEXT_SYMLINK
@@ -56,9 +57,6 @@static unsigned int ocfs_link_size (struct ocfs_symlink_ops *ops,char *str,struct inode *inode);static void ocfs_link_expand (struct ocfs_symlink_ops *ops,char *out,char *in,struct inode *inode); -int ocfs_follow_link (struct dentry *dentry,struct nameidata *nd); - -/* Context Dependent Symbolic Link (CDSL) code */ /**
@@ -181,7 +179,7 @@ } -int ocfs_follow_link (struct dentry *dentry,struct nameidata *nd) +static int ocfs_follow_link (struct dentry *dentry,struct nameidata *nd) {struct inode *inode = dentry->d_inode;struct page *page =NULL ;
@@ -274,3 +272,16 @@return len +1 ; } +#if LINUX_VERSION_CODE >KERNEL_VERSION (2 ,6 ,0 ) +struct inode_operations ocfs_symlink_inode_operations = { + .readlink = page_readlink, + .follow_link = ocfs_follow_link, + .getattr = ocfs_getattr, +}; +#else +struct inode_operations ocfs_symlink_inode_operations = { + .readlink = page_readlink, + .follow_link = ocfs_follow_link, + .revalidate = ocfs_inode_revalidate, +}; +#endif
symlink.h +1 -1
@@ -29,6 +29,6 @@#ifndef OCFS2_SYMLINK_H #define OCFS2_SYMLINK_H -int ocfs_follow_link (struct dentry *dentry,struct nameidata *nd); +extern struct inode_operations ocfs_symlink_inode_operations;#endif /* OCFS2_SYMLINK_H */