%{ /* * logeventfs.fist: logs the individual filesystem events to syslog * logevent portions are: * Copyright 2003 William Stearns * fistgen code copyright Erez Zadok and the fistgen team * logevent and fistgen portions are both released under the GPL * Hooking in functions other than lookup requires a patch to fistgen-0.0.6.1 */ %} debug off; %% //---------- create ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:create:precall { // printk("logeventfs: create:precall\n"); //} %op:create:postcall { /* printk("logeventfs: create:postcall\n"); */ printk("logeventfs: create: file %s\n", name); } //---------- getattr ---------- /* wrapfs_getattr is not enabled in the linux24 template at all, but precall and postcall added anyways. */ /* test with "". */ //%op:getattr:precall { // printk("logeventfs: getattr:precall\n"); //} //%op:getattr:postcall { // printk("logeventfs: getattr:postcall\n"); // /* printk("logeventfs: getattr: file %s\n", name); */ //} //---------- lstat ---------- /* Does this exist? */ /* test with "". */ //%op:lstat:precall { // printk("logeventfs: lstat:precall\n"); //} //%op:lstat:postcall { // printk("logeventfs: lstat:postcall\n"); // /* printk("logeventfs: lstat: file %s\n", name); */ //} //---------- stat ---------- /* Does this exist? */ /* test with "". */ //%op:stat:precall { // printk("logeventfs: stat:precall\n"); //} //%op:stat:postcall { // printk("logeventfs: stat:postcall\n"); // /* printk("logeventfs: stat: file %s\n", name); */ //} //---------- link ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:link:precall { // printk("logeventfs: link:precall\n"); //} //%op:link:postcall { // printk("logeventfs: link:postcall\n"); // /* printk("logeventfs: link: file %s\n", name); */ //} //---------- lookup ---------- /* Always had precall and postcall - hooked on l24. */ /* test with "". */ // %op:lookup:precall { // printk("logeventfs: lookup:precall\n"); // } //%op:lookup:postcall { // printk("logeventfs: lookup:postcall\n"); // printk("logeventfs: lookup: file %s\n", name); //} //---------- mkdir ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:mkdir:precall { // printk("logeventfs: mkdir:precall\n"); //} //%op:mkdir:postcall { // printk("logeventfs: mkdir:postcall\n"); // /* printk("logeventfs: mkdir: file %s\n", $dir.name); */ //} //---------- read ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:read:precall { // printk("logeventfs: read:precall\n"); //} //%op:read:postcall { // printk("logeventfs: read:postcall\n"); // /* printk("logeventfs: read: file %s\n", name); */ //} //---------- readdir ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:readdir:precall { // printk("logeventfs: readdir:precall\n"); //} //%op:readdir:postcall { // printk("logeventfs: readdir:postcall\n"); // /* printk("logeventfs: readdir: file %s\n", name); */ //} //---------- readlink ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:readlink:precall { // printk("logeventfs: readlink:precall\n"); //} //%op:readlink:postcall { // printk("logeventfs: readlink:postcall\n"); // /* printk("logeventfs: readlink: file %s\n", name); */ //} //---------- rename ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:rename:precall { // printk("logeventfs: rename:precall\n"); //} //%op:rename:postcall { // printk("logeventfs: rename:postcall\n"); // /* printk("logeventfs: rename: from %s/%s to %s/%s\n", $fromdir, $from, $todir, $to); */ //} //---------- rmdir ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:rmdir:precall { // printk("logeventfs: rmdir:precall\n"); //} //%op:rmdir:postcall { // printk("logeventfs: rmdir:postcall\n"); // /* printk("logeventfs: rmdir: file %s\n", $dir.name); */ //} //---------- setattr ---------- /* precall and postcall added - hooked on l24. */ /* test with "touch". */ //%op:setattr:precall { // printk("logeventfs: setattr:precall\n"); //} //%op:setattr:postcall { // printk("logeventfs: setattr:postcall\n"); // /* printk("logeventfs: setattr: file %s\n", name); */ //} //---------- statfs ---------- /* precall and postcall added in both attach.c and super.c - hooked on l24. */ /* test with "df" */ //%op:statfs:precall { // printk("logeventfs: statfs:precall\n"); //} //%op:statfs:postcall { // printk("logeventfs: statfs:postcall\n"); // /* printk("logeventfs: statfs: file %s\n", name); */ //} //---------- symlink ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:symlink:precall { // printk("logeventfs: symlink:precall\n"); //} //%op:symlink:postcall { // printk("logeventfs: symlink:postcall\n"); // /* printk("logeventfs: symlink: file %s\n", name); */ //} //---------- unlink ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:unlink:precall { // printk("logeventfs: unlink:precall\n"); //} //%op:unlink:postcall { // printk("logeventfs: unlink:postcall\n"); // /* printk("logeventfs: unlink: file %s\n", name); */ //} //---------- write ---------- /* precall and postcall added - hooked on l24. */ /* test with "". */ //%op:write:precall { // printk("logeventfs: write:precall\n"); //} //%op:write:postcall { // printk("logeventfs: write:postcall\n"); // /* printk("logeventfs: write: file %s\n", name); */ //} %%