diff options
Diffstat (limited to 'tapset/LKET/nfs.stp')
-rwxr-xr-x | tapset/LKET/nfs.stp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/tapset/LKET/nfs.stp b/tapset/LKET/nfs.stp index eb2566b3..3e4c1e53 100755 --- a/tapset/LKET/nfs.stp +++ b/tapset/LKET/nfs.stp @@ -1,3 +1,15 @@ +/* Helper functions */ +function __file_fsname:string (file:long) %{ /* pure */ + struct file *file = (struct file *)(long)THIS->file; + if ((file == NULL) + || (file->f_dentry == NULL) + || (file->f_dentry->d_inode == NULL)) + strlcpy(THIS->__retvalue, "NULL", MAXSTRINGLEN); + else { + strlcpy(THIS->__retvalue, file->f_dentry->d_inode->i_sb->s_type->name, MAXSTRINGLEN); + } +%} + probe never { printf("%d",GROUP_NFS) @@ -108,7 +120,7 @@ probe addevent.nfs.fop.read.entry probe _addevent.nfs.fop.read.entry = nfs.fop.read { - filesystem = kernel_string($filp->f_dentry->d_inode->i_sb->s_type->name) + filesystem = __file_fsname($filp) if(filesystem == "nfs") log_fop_rw(HOOKID_NFS_FOP_READ_ENTRY,s_id,fileid,buf,len,pos) @@ -144,7 +156,7 @@ probe addevent.nfs.fop.write.entry probe _addevent.nfs.fop.write.entry = nfs.fop.write { - filesystem = kernel_string($filp->f_dentry->d_inode->i_sb->s_type->name) + filesystem = __file_fsname($filp) if(filesystem == "nfs") log_fop_rw(HOOKID_NFS_FOP_WRITE_ENTRY,s_id,fileid,buf,len,pos) |