X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flinux%2Fobdfs.h;h=78ca2ae69ac33374796cc3dba32fb70fae69a8fb;hb=8688197f18b85befc95d8bb812c71cc6bec47284;hp=51f9762b29d3c421e61a7cfb80abf3eb352f4422;hpb=3146d280a803ae5f9749bab8cde36105de43fcb9;p=fs%2Flustre-release.git diff --git a/lustre/include/linux/obdfs.h b/lustre/include/linux/obdfs.h index 51f9762..78ca2ae 100644 --- a/lustre/include/linux/obdfs.h +++ b/lustre/include/linux/obdfs.h @@ -11,15 +11,16 @@ #ifndef _OBDFS_H #define OBDFS_H -#include <../obd/linux/obd_class.h> +#include -/* file.c */ -ssize_t obdfs_file_write(struct file *file, const char *buf, size_t count, loff_t *ppos); +/* super.c */ +void obdfs_read_inode(struct inode *inode); /* rw.c */ +int obdfs_readpage(struct dentry *dentry, struct page *page); +int obdfs_writepage(struct dentry *dentry, struct page *page); struct page *obdfs_getpage(struct inode *inode, unsigned long offset, int create, int locked); -int obdfs_writepage(struct file *file, struct page *page); int obdfs_write_one_page(struct file *file, struct page *page, unsigned long offset, unsigned long bytes, const char * buf); /* namei.c */ @@ -33,17 +34,21 @@ int obdfs_symlink(struct inode *dir, struct dentry *dentry, const char *symname) int obdfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry); int obdfs_rename(struct inode *old_dir, struct dentry *old_dentry, struct inode *new_dir, struct dentry *new_dentry); /* dir.c */ -int obdfs_readdir(struct file * filp, void * dirent, filldir_t filldir); int obdfs_check_dir_entry (const char * function, struct inode * dir, struct ext2_dir_entry_2 * de, struct page * page, unsigned long offset); +/* symlink.c */ +int obdfs_readlink (struct dentry *, char *, int); +struct dentry *obdfs_follow_link(struct dentry *, struct dentry *, unsigned int); struct obdfs_sb_info { - struct obd_conn_info osi_conn_info; + struct obd_conn osi_conn; struct super_block *osi_super; struct obd_device *osi_obd; - struct obd_ops *osi_ops; + struct obd_ops *osi_ops; + ino_t osi_rootino; /* which root inode */ + int osi_minor; /* minor of /dev/obdX */ }; void obdfs_sysctl_init(void); @@ -51,18 +56,39 @@ void obdfs_sysctl_clean(void); struct obdfs_inode_info; -extern struct file_operations obdfs_file_ops; -extern struct inode_operations obdfs_inode_ops; +extern struct file_operations obdfs_file_operations; +extern struct inode_operations obdfs_file_inode_operations; +extern struct inode_operations obdfs_dir_inode_operations; +extern struct inode_operations obdfs_symlink_inode_operations; static inline struct obd_ops *iops(struct inode *i) { - struct obdfs_sb_info *sbi = (struct obdfs_sb_info *) i->i_sb->u.generic_sbp; + struct obdfs_sb_info *sbi = (struct obdfs_sb_info *) &i->i_sb->u.generic_sbp; return sbi->osi_ops; } +static inline struct obd_conn *iid(struct inode *i) +{ + struct obdfs_sb_info *sbi = (struct obdfs_sb_info *) &i->i_sb->u.generic_sbp; + return &sbi->osi_conn; +} + #define NOLOCK 0 #define LOCKED 1 +#ifdef OPS +#warning "*** WARNING redefining OPS" +#else +#define OPS(sb,op) ((struct obdfs_sb_info *)(& ## sb ## ->u.generic_sbp))->osi_ops->o_ ## op +#define IOPS(inode,op) ((struct obdfs_sb_info *)(& ## inode->i_sb ## ->u.generic_sbp))->osi_ops->o_ ## op +#endif + +#ifdef ID +#warning "*** WARNING redefining ID" +#else +#define ID(sb) (&((struct obdfs_sb_info *)( & ## sb ## ->u.generic_sbp))->osi_conn) +#define IID(inode) (&((struct obdfs_sb_info *)( & ## inode->i_sb ## ->u.generic_sbp))->osi_conn) +#endif #define OBDFS_SUPER_MAGIC 0x4711