/*smfs_lib.c*/
void smfs_put_super(struct super_block *sb);
int smfs_fill_super(struct super_block *sb, void *data, int silent);
+
+void smfs_cleanup_hooks(struct smfs_super_info *smb);
/*sysctl.c*/
extern int sm_debug_level;
extern int sm_inodes;
extern struct inode_operations smfs_sym_iops;
extern struct file_operations smfs_sym_fops;
/*journal.c */
-extern void *smfs_trans_start(struct inode *inode, int op, void *desc_private);
-extern void smfs_trans_commit(struct inode *inode, void *handle,
- int force_sync);
-extern int smfs_post_kml_rec(struct inode *dir, struct dentry *dst_dentry,
- void *data1, void *data2, int op);
+void *smfs_trans_start(struct inode *inode, int op, void *desc_private);
+void smfs_trans_commit(struct inode *inode, void *handle, int force_sync);
extern int smfs_post_rec_write(struct inode *dir, struct dentry *dentry,
void *data1, void *data2);
void *data1, void *data2);
/*kml.c*/
int smfs_do_rec(struct inode *inode);
-int smfs_rec_cleanup(struct super_block *sb);
+int smfs_rec_cleanup(struct smfs_super_info *sb);
int smfs_rec_init(struct super_block *sb);
extern int smfs_rec_unpack(struct smfs_proc_args *args, char *record,
char **pbuf, int *opcode);
extern int smfs_process_rec(struct super_block *sb, int count,
char *dir, int flags);
-extern smfs_pack_rec_func smfs_get_rec_pack_type(struct super_block *sb);
-
/*mds_kml.c*/
-int mds_rec_pack_init(struct super_block *sb);
+int mds_rec_pack_init(struct smfs_super_info *smb);
/*ost_kml.c*/
-int ost_rec_pack_init(struct super_block *sb);
+int ost_rec_pack_init(struct smfs_super_info *smb);
/*smfs_llog.c*/
extern int smfs_llog_setup(struct super_block *sb, struct vfsmount *mnt);
#define HOOK_RENAME 9
#define HOOK_SETATTR 10
#define HOOK_WRITE 11
-#define HOOK_MAX 11
+#define HOOK_READDIR 12
+#define HOOK_MAX 12
#define PRE_HOOK 0
#define POST_HOOK 1
GOTO(label, rc); \
} while(0) \
-#define SMFS_GET_INODE(sb, cache_inode, dir, index, inode, rc, label) \
+#define SMFS_GET_INODE(sb, cache_inode, dir, inode, rc, label) \
do { \
LASSERT(cache_inode); \
- inode = smfs_get_inode(sb, cache_inode->i_ino, dir, index); \
+ inode = smfs_get_inode(sb, cache_inode->i_ino, dir, 0); \
iput(cache_inode); \
if (!inode) \
GOTO(label, rc = -ENOENT); \
#if CONFIG_SNAPFS
int smfs_cow_init(struct super_block *sb);
int smfs_cow_cleanup(struct smfs_super_info *smb);
-int smfs_init_snap_inode_info(struct inode *inode, struct smfs_iget_args *args);
int smfs_snap_test_inode(struct inode *inode, void *args);
#else
#define SMFS_PRE_COW(dir, dentry, new_dir, new_dentry, op, name, rc, label)