Whamcloud - gitweb
add null_audit command to lctl which will make audit silent. For testing purposes.
[fs/lustre-release.git] / lustre / smfs / smfs_internal.h
index ec7fab5..59d5720 100644 (file)
@@ -55,7 +55,7 @@ struct smfs_control_device {
 #define INODE_OPS_CHECK          0x2
 #define FILE_OPS_CHECK           0x4
 #define DENTRY_OPS_CHECK         0x8
-#define DEV_OPS_CHECK            0x10
+#define SPECIAL_OPS_CHECK        0x10
 #define SYMLINK_OPS_CHECK        0x20
 #define DIR_OPS_CHECK            0x40
 
@@ -68,6 +68,8 @@ do{                                                 \
         buffer += sizeof(opcode);                   \
 } while (0)
 
+#define SMFS_IOPEN_INO  1
+#define KEY_IS(str, key) (strcmp(str,key) == 0)
 
 extern int init_smfs_proc_sys(void);
 /*cache.c*/
@@ -84,6 +86,7 @@ void smfs_put_super(struct super_block *sb);
 int smfs_fill_super(struct super_block *sb, void *data, int silent);
 int smfs_post_setup(struct obd_device *, struct vfsmount *, struct dentry *);
 void smfs_post_cleanup(struct super_block *);
+void * smfs_get_plg_priv(struct smfs_super_info *, int);
 /*sysctl.c*/
 extern int sm_debug_level;
 extern int sm_inodes;
@@ -98,6 +101,7 @@ extern struct file_operations smfs_iopen_fops;
 /*file.c*/
 extern struct inode_operations smfs_file_iops;
 extern struct file_operations  smfs_file_fops;
+extern struct inode_operations smfs_special_iops;
 extern int smfs_ioctl(struct inode * inode, struct file * filp,
                       unsigned int cmd, unsigned long arg);
 extern int smfs_fsync(struct file * file, struct dentry *dentry, int datasync);
@@ -108,6 +112,7 @@ extern int smfs_getxattr(struct dentry *dentry, const char *name, void *buffer,
                          size_t size);
 extern ssize_t smfs_listxattr(struct dentry *dentry, char *buffer, size_t size);
 extern int smfs_removexattr(struct dentry *dentry, const char *name);
+extern int smfs_permission(struct inode *inode, int mask, struct nameidata *nd);
 extern int smfs_open(struct inode * inode, struct file * filp);
 extern int smfs_release(struct inode * inode, struct file * filp);
 /*inode.c*/
@@ -145,13 +150,13 @@ extern int smfs_rec_unpack(struct smfs_proc_args *args, char *record,
 extern int smfs_process_rec(struct super_block *sb, int count,
                             char *dir, int flags);
 
-/*mds_kml.c*/
-int mds_rec_pack_init(struct smfs_super_info *smb);
-/*ost_kml.c*/
-int ost_rec_pack_init(struct smfs_super_info *smb);
+extern int mds_rec_pack(int, char *, struct dentry *, struct inode *,
+                        void *, void *);
+extern int ost_rec_pack(int, char *, struct dentry *, struct inode *,
+                        void *, void *);
 
 /*smfs_llog.c*/
-extern int smfs_llog_setup(struct smfs_super_info *);
+extern int smfs_llog_setup(struct dentry **, struct dentry **);
 extern int smfs_llog_cleanup(struct smfs_super_info *);
 extern int smfs_llog_add_rec(struct smfs_super_info *, void *, int);
 /*ioctl.c*/
@@ -159,6 +164,11 @@ extern int init_smfs_psdev(void);
 extern void smfs_cleanup_psdev(void);
 /*smfs_cow.c */
 
+/* audit_transfer.c */
+int audit_notify(struct llog_handle *llh, void*, int);
+int audit_start_transferd(void);
+int audit_stop_transferd(void);
+
 /* cache_space.c */
 extern int do_cache_manage;
 struct cache_purge_queue {
@@ -233,6 +243,40 @@ static inline int get_active_entry(struct inode *dir, __u64 *active_entry)
         RETURN(rc);
 }
 
+struct kml_buffer {
+        char *buf;
+        int   buf_size;
+}; 
+
+#ifdef __KERNEL__
+static inline void
+smfs_inode2id(struct lustre_id *id, struct inode *inode)
+{
+        mdc_pack_id(id, inode->i_ino, inode->i_generation,
+                    (inode->i_mode & S_IFMT), 0, 0);
+}
+
+static inline void 
+smfs_prepare_mdc_data(struct mdc_op_data *data, struct inode *i1,
+                      struct inode *i2, const char *name, int namelen,
+                      int mode)
+{
+        LASSERT(i1);
+
+        smfs_inode2id(&data->id1, i1);
+        if (i2)
+                smfs_inode2id(&data->id2, i2);
+        else
+                memset(&data->id2, 0, sizeof(data->id2));
+
+       data->valid = 0;
+        data->name = name;
+        data->namelen = namelen;
+        data->create_mode = mode;
+        data->mod_time = LTIME_S(CURRENT_TIME);
+}
+#endif
+
 #if CONFIG_SNAPFS
 int smfs_cow_init(struct super_block *sb);
 int smfs_cow_cleanup(struct smfs_super_info *smb);