Whamcloud - gitweb
add null_audit command to lctl which will make audit silent. For testing purposes.
[fs/lustre-release.git] / lustre / llite / llite_audit.c
index 66bbfa4..dc14ad6 100644 (file)
@@ -40,17 +40,26 @@ int ll_set_audit(struct inode * inode, __u64 arg)
 {
         struct audit_attr_msg msg;
         struct obd_export * exp = ll_i2mdexp(inode);
+        struct ll_sb_info * sbi = ll_s2sbi(inode->i_sb);
+        struct ll_inode_info *lli = ll_i2info(inode);
         int rc;
 
         msg.attr = arg;
-        msg.id = ll_i2info(inode)->lli_id;
-        //set audit on MDS (fs/dir/file)
+        msg.id = lli->lli_id;
+        CDEBUG(D_INFO, "Set audit 0x%x for "DLID4"\n", (__u32)arg, OLID4(&lli->lli_id));
         rc = obd_set_info(exp, 5, "audit", sizeof(msg), &msg);
         
         //if fs audit is being set for fs then pass attr to all OSS
         if (IS_AUDIT_OP(arg, AUDIT_FS)) {
+                sbi->ll_audit_mask = arg;
                 exp = ll_i2dtexp(inode);
                 rc = obd_set_info(exp, 5, "audit", sizeof(msg), &msg);
+        } else if (IS_AUDIT_OP(arg, AUDIT_SYNC) ||
+                   IS_AUDIT_OP(arg, AUDIT_NULL)) {
+                exp = ll_i2dtexp(inode);
+                rc = obd_set_info(exp, 5, "audit", sizeof(msg), &msg);
+        } else {
+                lli->lli_audit_mask = arg;
         }
         return rc;
 }
@@ -84,7 +93,6 @@ int ll_check_audit(struct inode * inode, audit_op op, int ret)
 int ll_audit_log (struct inode * inode, audit_op code, int ret)
 {
         struct audit_msg msg;
-        //struct lustre_id * id = &msg.id;
         struct obd_export * exp = ll_i2dtexp(inode);
         int rc = 0;
         
@@ -92,9 +100,9 @@ int ll_audit_log (struct inode * inode, audit_op code, int ret)
                 msg.id = ll_i2info(inode)->lli_id;
                 msg.code = code;
                 msg.result = ret;
-                msg.uid = current->fsuid;
-                msg.gid = current->fsgid;
-                msg.nid = 0xFEED;
+                msg.uid = current->uid;
+                msg.gid = current->gid;
+                msg.nid = 0;
                 
                 rc = obd_set_info(exp, 8, "auditlog", sizeof(msg), &msg);
         }