diff -uNr fistgen-0.0.6.1.pristine/templates/Linux-2.4/file.c fistgen-0.0.6.1.wls/templates/Linux-2.4/file.c --- fistgen-0.0.6.1.pristine/templates/Linux-2.4/file.c Mon Jan 20 18:01:20 2003 +++ fistgen-0.0.6.1.wls/templates/Linux-2.4/file.c Wed Apr 16 21:09:40 2003 @@ -141,13 +141,17 @@ int err = -EINVAL; file_t *hidden_file; loff_t pos = *ppos; + const char *name; print_entry_location(); hidden_file = ftohf(file); /* CPW: Moved to after print_entry_location */ + name = file->f_dentry->d_name.name; /* WLS strcpy needed? */ if (!hidden_file->f_op || !hidden_file->f_op->read) goto out; + FIST_OP_READ_PRECALL; + err = hidden_file->f_op->read(hidden_file, buf, count, &pos); if (err >= 0) { @@ -156,6 +160,8 @@ hidden_file->f_dentry->d_inode); } + FIST_OP_READ_POSTCALL; + // MAJOR HACK /* * because pread() does not have any way to tell us that it is @@ -293,13 +299,17 @@ #if defined(FIST_FILTER_NAME) || defined(FIST_FILTER_SCA) struct wrapfs_getdents_callback buf; #endif /* FIST_FILTER_NAME || FIST_FILTER_SCA */ + const char *name; print_entry_location(); hidden_file = ftohf(file); /* CPW: Moved to after print_entry_location */ inode = file->f_dentry->d_inode; + name = file->f_dentry->d_name.name; /* WLS strcpy needed? */ fist_checkinode(inode, "wrapfs_readdir"); + FIST_OP_READDIR_PRECALL; + #if defined(FIST_FILTER_NAME) || defined(FIST_FILTER_SCA) /* prepare for callback */ buf.dirent = dirent; @@ -314,6 +324,8 @@ if (err > 0) fist_copy_attr_atime(inode, hidden_file->f_dentry->d_inode); + FIST_OP_READDIR_POSTCALL; + fist_checkinode(inode, "post wrapfs_readdir"); print_exit_status(err); return err; diff -uNr fistgen-0.0.6.1.pristine/templates/Linux-2.4/inode.c fistgen-0.0.6.1.wls/templates/Linux-2.4/inode.c --- fistgen-0.0.6.1.pristine/templates/Linux-2.4/inode.c Fri Dec 27 15:19:04 2002 +++ fistgen-0.0.6.1.wls/templates/Linux-2.4/inode.c Wed Apr 16 20:35:32 2003 @@ -29,12 +29,16 @@ int err; dentry_t *hidden_dentry; dentry_t *hidden_dir_dentry; + const char *name; print_entry_location(); hidden_dentry = wrapfs_hidden_dentry(dentry); /* CPW: Moved below print_entry_location */ + name = dentry->d_name.name; ASSERT(hidden_dentry != NULL); fist_checkinode(dir, "wrapfs_create"); + FIST_OP_CREATE_PRECALL; + hidden_dir_dentry = lock_parent(hidden_dentry); err = PTR_ERR(hidden_dir_dentry); if (IS_ERR(hidden_dir_dentry)) @@ -45,6 +49,8 @@ if (err) goto out_lock; + FIST_OP_CREATE_POSTCALL; + err = wrapfs_interpose(hidden_dentry, dentry, dir->i_sb, 0); if (err) goto out_lock; @@ -241,14 +247,19 @@ dentry_t *hidden_old_dentry; dentry_t *hidden_new_dentry; dentry_t *hidden_dir_dentry; + /* WLS: How to handle the fact that link has an old and new name? */ + const char *name; print_entry_location(); hidden_old_dentry = wrapfs_hidden_dentry(old_dentry); /* CPW: Moved below print_entry_location */ hidden_new_dentry = wrapfs_hidden_dentry(new_dentry); + name = new_dentry->d_name.name; /* WLS Likewise, how to handle other dentry? */ fist_checkinode(dir, "wrapfs_link-dir"); fist_checkinode(old_dentry->d_inode, "wrapfs_link-oldinode"); + FIST_OP_LINK_PRECALL; + dget(hidden_old_dentry); dget(hidden_new_dentry); hidden_dir_dentry = lock_parent(hidden_new_dentry); @@ -277,6 +288,8 @@ if (err || !hidden_new_dentry->d_inode) goto out_lock; + FIST_OP_LINK_POSTCALL; + err = wrapfs_interpose(hidden_new_dentry, new_dentry, dir->i_sb, 0); if (err) goto out_lock; @@ -427,13 +440,17 @@ int err; dentry_t *hidden_dentry; dentry_t *hidden_dir_dentry; + const char *name; print_entry_location(); hidden_dentry = wrapfs_hidden_dentry(dentry); /* CPW: Moved below print_entry_location */ + name = dentry->d_name.name; fist_checkinode(dir, "wrapfs_mkdir-dir"); hidden_dir_dentry = lock_parent(hidden_dentry); + FIST_OP_MKDIR_PRECALL; + err = vfs_mkdir(hidden_dir_dentry->d_inode, hidden_dentry, mode); @@ -444,6 +461,8 @@ if (err) goto out; + FIST_OP_MKDIR_POSTCALL; + fist_copy_attr_timesizes(dir, hidden_dir_dentry->d_inode); /* update number of links on parent directory */ dir->i_nlink = hidden_dir_dentry->d_inode->i_nlink; @@ -1035,6 +1054,19 @@ STATIC int wrapfs_getattr(dentry_t *dentry, struct iattr *ia) { + /* + * Kinda pointless at the moment as wrapfs_getattr's disabled, but... + */ + const char *name; + + name = dentry->d_name.name; + + FIST_OP_GETATTR_PRECALL; + + + + FIST_OP_GETATTR_POSTCALL; + return -ENOSYS; } #endif /* NOT_USED_YET */