summaryrefslogtreecommitdiffstats
path: root/tapset/LKET/nfs_proc.stp
diff options
context:
space:
mode:
Diffstat (limited to 'tapset/LKET/nfs_proc.stp')
-rwxr-xr-xtapset/LKET/nfs_proc.stp114
1 files changed, 73 insertions, 41 deletions
diff --git a/tapset/LKET/nfs_proc.stp b/tapset/LKET/nfs_proc.stp
index 08a08152..418f6c21 100755
--- a/tapset/LKET/nfs_proc.stp
+++ b/tapset/LKET/nfs_proc.stp
@@ -10,6 +10,7 @@
void getdevice(char *sid,int * major,int* min)
{
+ /* FIXME: deref hazard! */
char c;
char * minor, *p;
int i = 0;
@@ -105,13 +106,15 @@ probe _addevent.nfs.proc.lookup.entry
function log_proc_lookup(version:long,dir:long,filename:string)
%{
struct inode * dir = (struct inode * )((long)THIS->dir);
- struct super_block * sb = dir->i_sb;
+ struct super_block *sb = kread(&(dir->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_LOOKUP_ENTRY,"%1b%1b%8b%1b%0s",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(dir),THIS->version,THIS->filename);
+ NFS_FILEID(dir) /* FIXME: deref hazard! */,
+ THIS->version,THIS->filename);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.lookup.return
@@ -141,14 +144,16 @@ probe _addevent.nfs.proc.read.entry
function log_proc_read(version:long,rdata:long,count:long,offset:long)
%{
struct nfs_read_data* rdata = (struct nfs_read_data* )((long)THIS->rdata);
- struct inode *inode = rdata->inode;
- struct super_block * sb = inode->i_sb;
+ struct inode *inode = kread(&(rdata->inode));
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_READ_ENTRY,"%1b%1b%8b%1b%4b%8b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->count,THIS->offset);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->count,THIS->offset);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.read.return
@@ -178,14 +183,16 @@ probe _addevent.nfs.proc.write.entry
function log_proc_write(version:long,wdata:long,count:long,offset:long)
%{
struct nfs_write_data* wdata = (struct nfs_write_data* )((long)THIS->wdata);
- struct inode *inode = wdata->inode;
- struct super_block * sb = inode->i_sb;
+ struct inode *inode = kread(&(wdata->inode));
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_WRITE_ENTRY,"%1b%1b%8b%1b%4b%8b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->count,THIS->offset);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->count,THIS->offset);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.write.return
@@ -215,15 +222,17 @@ probe _addevent.nfs.proc.commit.entry
function log_proc_commit(version:long,cdata:long,count:long,offset:long)
%{
struct nfs_write_data* cdata = (struct nfs_write_data* )((long)THIS->cdata);
- struct inode *inode = cdata->inode;
- struct super_block * sb = inode->i_sb;
+ struct inode *inode = kread(&(cdata->inode));
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_COMMIT_ENTRY,"%1b%1b%8b%1b%4b%8b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->count,THIS->offset);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->count,THIS->offset);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.commit.return
@@ -253,15 +262,17 @@ probe _addevent.nfs.proc.read_setup.entry
function log_proc_read_setup(version:long,data:long,count:long,offset:long)
%{
struct nfs_read_data* data = (struct nfs_read_data* )((long)THIS->data);
- struct inode *inode = data->inode;
- struct super_block * sb = inode->i_sb;
+ struct inode *inode = kread(&(data->inode));
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_READSETUP_ENTRY,"%1b%1b%8b%1b%4b%8b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->count,THIS->offset);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->count,THIS->offset);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.write_setup.entry
@@ -279,15 +290,17 @@ probe _addevent.nfs.proc.write_setup.entry
function log_proc_write_setup(version:long,data:long,count:long,offset:long,how:long)
%{
struct nfs_write_data* data = (struct nfs_write_data* )((long)THIS->data);
- struct inode *inode = data->inode;
- struct super_block * sb = inode->i_sb;
+ struct inode *inode = kread(&(data->inode));
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_WRITESETUP_ENTRY,"%1b%1b%8b%1b%1b%4b%8b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->how,THIS->count,THIS->offset);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->how,THIS->count,THIS->offset);
+ CATCH_DEREF_FAULT();
%}
@@ -306,15 +319,17 @@ probe _addevent.nfs.proc.commit_setup.entry
function log_proc_commit_setup(version:long,data:long,count:long,offset:long)
%{
struct nfs_write_data* data = (struct nfs_write_data* )((long)THIS->data);
- struct inode *inode = data->inode;
- struct super_block * sb = inode->i_sb;
+ struct inode *inode = kread(&(data->inode));
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_COMMITSETUP_ENTRY,"%1b%1b%8b%1b%4b%8b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->count,THIS->offset);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->count,THIS->offset);
+ CATCH_DEREF_FAULT();
%}
@@ -337,15 +352,17 @@ probe _addevent.nfs.proc.read_done.entry
function log_proc_read_done(version:long,data:long,count:long,status:long)
%{
struct nfs_read_data* data = (struct nfs_read_data* )((long)THIS->data);
- struct inode *inode = data->inode;
- struct super_block * sb = inode->i_sb;
+ struct inode *inode = kread(&(data->inode));
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_READDONE_ENTRY,"%1b%1b%8b%1b%4b%4b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->status,THIS->count);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->status,THIS->count);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.read_done.return
@@ -383,15 +400,17 @@ probe _addevent.nfs.proc.write_done.entry
function log_proc_write_done(version:long,data:long,count:long,status:long)
%{
struct nfs_write_data* data = (struct nfs_write_data* )((long)THIS->data);
- struct inode *inode = data->inode;
- struct super_block * sb = inode->i_sb;
+ struct inode *inode = kread(&(data->inode));
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_WRITEDONE_ENTRY,"%1b%1b%8b%1b%4b%4b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->status,THIS->count);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->status,THIS->count);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.write_done.return
@@ -429,15 +448,17 @@ probe _addevent.nfs.proc.commit_done.entry
function log_proc_commit_done(version:long,data:long,count:long,status:long)
%{
struct nfs_write_data* data = (struct nfs_write_data* )((long)THIS->data);
- struct inode *inode = data->inode;
- struct super_block * sb = inode->i_sb;
+ struct inode *inode = kread(&(data->inode));
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_COMMITDONE_ENTRY,"%1b%1b%8b%1b%4b%4b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->status,THIS->count);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->status,THIS->count);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.commit_done.return
@@ -472,14 +493,16 @@ function log_proc_open(version:long,inode:long,
filename:string,flag:long,mode:long)
%{
struct inode *inode = (struct inode *)((long)THIS->inode);
- struct super_block * sb = inode->i_sb;
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_OPEN_ENTRY,"%1b%1b%8b%1b%0s%4b%4b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->filename,THIS->flag,THIS->mode);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->filename,THIS->flag,THIS->mode);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.open.return
@@ -510,14 +533,16 @@ function log_proc_release(version:long,inode:long,
filename:string,flag:long,mode:long)
%{
struct inode *inode = (struct inode *)((long)THIS->inode);
- struct super_block * sb = inode->i_sb;
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_RELEASE_ENTRY,"%1b%1b%8b%1b%0s%4b%4b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->filename,THIS->flag,THIS->mode);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->filename,THIS->flag,THIS->mode);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.release.return
@@ -547,13 +572,15 @@ probe _addevent.nfs.proc.create.entry
function log_proc_create(version:long,inode:long,filename:string,mode:long)
%{
struct inode *inode = (struct inode *)((long)THIS->inode);
- struct super_block * sb = inode->i_sb;
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_CREATE_ENTRY,"%1b%1b%8b%1b%0s%4b",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->filename,THIS->mode);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->filename,THIS->mode);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.create.return
@@ -584,13 +611,15 @@ function log_proc_remove(version:long,inode:long,
filename:string)
%{
struct inode *inode = (struct inode *)((long)THIS->inode);
- struct super_block * sb = inode->i_sb;
+ struct super_block * sb = kread(&(inode->i_sb));
int major_device,minor_device;
getdevice(sb->s_id,&major_device,&minor_device);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_REMOVE_ENTRY,"%1b%1b%8b%1b%0s",
(_FMT_)major_device,(_FMT_)minor_device,
- NFS_FILEID(inode),THIS->version,THIS->filename);
+ NFS_FILEID(inode) /* FIXME: deref hazard! */,
+ THIS->version,THIS->filename);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.remove.return
@@ -622,17 +651,20 @@ function log_proc_rename(version:long,old_dir:long,old_name:string,
%{
struct inode *old_dir= (struct inode *)((long)THIS->old_dir);
struct inode *new_dir= (struct inode *)((long)THIS->new_dir);
- struct super_block * old_sb = old_dir->i_sb;
- struct super_block * new_sb = new_dir->i_sb;
+ struct super_block * old_sb = kread(&(old_dir->i_sb));
+ struct super_block * new_sb = kread(&(new_dir->i_sb));
int major_old,minor_old,major_new,minor_new;
getdevice(old_sb->s_id,&major_old,&minor_old);
getdevice(new_sb->s_id,&major_new,&minor_new);
_lket_trace(_GROUP_NFS,_HOOKID_NFS_PROC_RENAME_ENTRY,"%1b%1b%1b%8b%0s%1b%1b%8b%0s",
- THIS->version,(_FMT_)major_old,(_FMT_)minor_old,NFS_FILEID(old_dir),
- THIS->old_name,(_FMT_)major_new,(_FMT_)minor_new,NFS_FILEID(new_dir),
+ THIS->version,(_FMT_)major_old,(_FMT_)minor_old,
+ NFS_FILEID(old_dir) /* FIXME: deref hazard! */,
+ THIS->old_name,(_FMT_)major_new,(_FMT_)minor_new,
+ NFS_FILEID(new_dir) /* FIXME: deref hazard! */,
THIS->new_name);
+ CATCH_DEREF_FAULT();
%}
probe addevent.nfs.proc.rename.return