📄 changelog
字号:
2003-02-09 Charles P. Wright <cwright@fsl.cs.sunysb.edu> * inode.c (wrapfs_updatepage): testing for kmalloc return values. * main.c (wrapfs_read_super): Return value of kmalloc was not checked.002-04-02 Kiran-Kumar Muniswamy-Reddy <kiran@t2.fsl.cs.sunysb.edu> * file.c (wrapfs_read): added this function, fix for atime of lower level file system not being updated (wrapfs_write): fix for atime and mtime of upper layer not being updated * inode.c (wrapfs_writepage): update the time atime and mtime of upper layer. probably redundant as this function is not used anywhere.2002-03-30 Erez Zadok <ezk@cricket.fsl.cs.sunysb.edu> * main.c (wrapfs_parse_options): advance options pointer to the next comma-delimited option.2002-03-19 Ion Badulescu <ionut@moisil.badula.org> * main.c (wrapfs_parse_options): use simple_strtoul() instead of simple_strtol()2002-03-19 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu> * attach.c: more "complete" stub.2002-03-18 Ion Badulescu <ionut@moisil.badula.org> * print.c: moved fist_[gs]et_debug_value back from main.c, keeping only the MODULE_PARM declaration in main.c. Cleaner fix then the one below (fist_set_debug_value): print the new debug level when changing it; move fist_debug_var outside of FIST_DEBUG * attach.c: stub file to allow Linux-2.2 to compile2002-03-13 Kiran-Kumar Muniswamy-Reddy <kiran@t3.fsl.cs.sunysb.edu> * file.c (wrapfs_write): number of disk blocks allocated to a file is shown to be zero on stat()ing it, when actually the number allocated is more.2002-03-11 Kiran-Kumar Muniswamy-Reddy <kiran@a-rh72.fsl.cs.sunysb.edu> * file.c (wrapfs_ioctl): don't fail ioctls by default, unless we know for sure that they are unknown. Otherwise, cryptfs code returns a failure even after setting the cipher key correctly. Plus, the default behavior for wrapfs_ioctl() for all other OSs (freebsd & solaris) is to succeed by default unless the ioctl is unknown.2002-03-05 Kiran-ku Muniswamy-reddy <kmuniswa@ic.sunysb.edu> * print.c (fist_get_debug_value, fist_set_debug_value): moved to main.c along with the definition of static fist_debug_var and calls to MODULE_PARM, MODULE_PARM_DESC macros, removed include <linux/module.h>. Done in order to avoid symbol conflicts during compile time. * main.c (fist_get_debug_value, fist_set_debug_value): added to this file from print.c along with calls to MODULE_PARM, MODULE_PARM_DESC macros, moved the definition of static fist_debug_var to this file from print.c. All the moved code is placed inside an #ifdef FIST_DEBUG and #endif. Done in order to avoid symbol conflicts during compile time.2002-02-03 Ion Badulescu <ionut@moisil.badula.org> * main.c (wrapfs_parse_options): added mount option "debug=%d" for setting the debug level at mount time added MODULE_DESCRIPTION() * print.c: changed default debug level to 0; added MODULE_PARM(fist_debug_var) * file.c (wrapfs_poll): return DEFAULT_POLLMASK if the underlying fs doesn't have a poll() method [patch from Marc Boucher * fist.h: define DEFAULT_POLLMASK if not already defined2001-10-15 Ion Badulescu <ion@guppy.limebrokerage.com> * inode.c (wrapfs_{create,link,mkdir,mknod}): same fix as for wrapfs_symlink below2001-10-12 Ion Badulescu <ion@guppy.limebrokerage.com> * Makefile (CC): support kgcc (RH) and gcc272 (Debian) using the new kwhich script * kwhich: new script, borrowed from 2.2.19 * file.c (wrapfs_ioctl): return ENOTTY for non-existant ioctl's (fixes problem with 'tar -z') * inode.c (wrapfs_symlink): don't interpose if the hidden_dentry is negative, d_drop our dentry instead (fixes a problem when stacking over NFSv2) * main.c (wrapfs_read_super): don't dereference a NULL pointer when following an error path * fist.h: fixed problem with MODVERSIONS kernels2001-10-08 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu> * Makefile: set TOPINC to best known system headers. Optionally include fistdev.mk if it exists, allowing fistgen developers to override the value of TOPINC.2001-10-01 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu> * main.c (wrapfs_read_super): bug fix: copy hidden superblock s_blocksize and s_blocksize_bits. Now 2.2 kernels can execute binaries greater than one page. (Yes, it's entirely non-obvious what the fix has to do with the bug, yet 2 man days were wasted on this bug.) * print.c: set default debug level to 18 (max) so we can see a few debugging messages before fist_ioctl has a chance to reset the debugging level. * main.c (wrapfs_read_super): print superblock and hidden superblock on exit. * print.c (fist_print_sb): new function2001-09-30 Ion Badulescu <lionut@localhost.localdomain> * inode.c (wrapfs_readpage): error path fixes, lots of debugging code added * main.c (wrapfs_read_super): copy sb->s_blocksize and sb->s_blocksize_bits from the hidden sb (fscking thing made us waste HOURS!!! Hours?! How about a whole day, two people, and we spent hours using kGdb on VMware! -Erez)2001-09-30 Ion Badulescu <lionut@gonzales.badula.org> * inode.c (wrapfs_create): minor cleanup of an error path (__read_cache_page): new function, copied from 2.2.18 mm/filemap.c (read_cache_page): ditto (wrapfs_readpage): rip out a lot of code that is now in read_cache_page (wrapfs_writepage): don't define it at all (wrapfs_updatepage): ditto2001-09-30 Ion Badulescu <lionut@gonzales.badula.org> * file.c (wrapfs_main_fops): whoops, we _are_ using wrapfs_write!2001-09-29 Ion Badulescu <lionut@gonzales.badula.org> * file.c (wrapfs_dir_read): return -EISDIR, this function is only used for directories (wrapfs_read, wrapfs_write): not used, so removed2001-09-29 Ion Badulescu <lionut@gonzales.badula.org> Backported 2.4 fixes to make "cat ." (or any other directory) fail: * super.c (wrapfs_read_inode): use wrapfs_main_iops * main.c (wrapfs_interpose): change i_ops to wrapfs_dir_iops for directories (__wrapfs_hidden_dentry): use wrapfs_main_iops and wrapfs_dir_iops * inode.c (wrapfs_main_iops): renamed from wrapfs_iops; (wrapfs_dir_iops): new structure for directories * file.c (wrapfs_read, wrapfs_write): remove ifdef's around them, they are used for directories; fixed some comments in wrapfs_write; (wrapfs_dir_fops): new file_operations structure for directories (wrapfs_main_fops): renamed from wrapfs_fops2001-09-29 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu> * Makefile (TOPINC): use /lib/modules/<uname -r>/build/include optionally2001-09-29 Ion Badulescu <lionut@gonzales.badula.org> * fist_ioctl.c: include <string.h> * super.c (wrapfs_put_inode): ->put_inode() becomes a mandatory op, because of NFS (which doesn't really unlink files, but renames them to .nfsXXX). If our inode->i_count is 1, we force ->i_nlink to 0, to ensure that iput() will drop our reference to the hidden inode upon freeing us. * print.c (fist_print_dentry): don't print d_iname, it's not zero-terminated; print list_empty(d_hash) * inode.c (wrapfs_lookup): comment (wrapfs_unlink): backport fixes from 2.4 (ENOENT special casing removed, call d_delete on hidden_dentry) (wrapfs_rmdir): ditto, also remove the nlink fix -- now done in wrapfs_put_inode * dentry.c (wrapfs_d_release): comment * fist.h (fist_copy_attr_all): copy i_rdev between hidden_inode and our inode2001-01-15 Erez Zadok <ezk@earth.cs.columbia.edu> * inode.c (wrapfs_sync_page): new method (appeared first in 2.2.18), based on a similar one implemented for the 2.4 templates. (wrapfs_prepare_write): placeholder function, not implemented2000-06-10 Erez Zadok <ezk@beetle.mcl.cs.columbia.edu> * aux.c (fist_lookup): auxiliary functions for Linux 2.2.2000-05-20 Erez Zadok <ezk@earth.cs.columbia.edu> * {,un}doit.sh: use similarly to 2.3 scripts. * print.c ({add,del}_indent): automatically indent IN/OUT debug functions. * file.c (wrapfs_fops): wrapfs_mmap should use generic_file_mmap, not NULL. * Makefile (O_OBJS): vm_area.c is not needed any more.2000-05-10 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * Makefile: define TOPINC for special -I flags, to avoid bad header inclusions with just a -I<null> option.2000-05-08 Erez Zadok <ezk@beetle.mcl.cs.columbia.edu> * wrapfs.h (global_event): define "event" to be global_event for kernels prior to 2.2.14. * Makefile: update the Makefile template to turn on -DFISTGEN and other stuff that is needed. * inode.c (wrapfs_link): fix typo. assign to err variable, not subtract from it. * file.c (wrapfs_ioctl): define this_vfs and this_vnode. * *.c: include "fist_wrapfs.h" in all .c files.2000-04-24 Ion Badulescu <ib42@earth.cs.columbia.edu> * inode.c (wrapfs_lookup): added FILTER_NAME stuff; interpose the dentry here; destroy our dentry (d_drop) if error (wrapfs_unlink, wrapfs_rmdir): handle cases where the file/dir is removed through the hidden fs * main.c (wrapfs_interpose): don't interpose the dentry; interpose the inode only if not already done (wrapfs_read_super): interpose the root dentry * super.c (wrapfs_put_inode): #ifdef FIST_DEBUG * inode.c (wrapfs_readlink): return -EINVAL instead of -EPERM if the inode doesn't support readlink2000-04-15 Ion Badulescu <ib42@earth.cs.columbia.edu> * inode.c (wrapfs_rmdir, wrapfs_unlink): fixed it so that deleting an open file works correctly (wrapfs_permission): check for read-only filesystem2000-04-03 Ion Badulescu <ib42@moisil.cs.columbia.edu> * main.c (wrapfs_interpose): reorganized slightly2000-04-02 Ion Badulescu <ib42@moisil.cs.columbia.edu> * main.c, super.c: don't call iget() in read_inode(), instead do the interposition where it should be done: in interpose, by calling igrab()2000-03-26 Ion Badulescu <ib42@earth.cs.columbia.edu> * wrapfs.h: sync with 2.3 version * vm_area.c (wrapfs_shared_vmops, wrapfs_private_vmops): rewrite using the GNU initializers * super.c (wrapfs_read_inode): copy attributes only when hidden_inode is non-NULL; event renamed to global_event (wrapfs_delete_inode): use it, and set i_size to 0 (wrapfs_notify_change): call notify_change, remove duplicated code (wrapfs_sops): rewrite using the GNU initializers * subr.c: added #error, some ifdef's * inode.c (wrapfs_create): restructure (wrapfs_lookup): add FIST_OP_LOOKUP_PRECALL and FIST_OP_LOOKUP_POSTCALL (wrapfs_link): add check_parent(), DQUOT_INIT; dget/dput dentries (wrapfs_unlink): use vfs_unlink; propagate i_nlink from lower inode and call d_delete on dentry (Marc Schaeffer bug #1); add check_parent() (wrapfs_symlink): add check_parent(); add code to handle name mangling; dget/dput dentries (wrapfs_mkdir): add check_parent(); propagate i_nlink from hidden_dir (wrapfs_rmdir): add check_parent(); propagate i_nlink from hidden_dir and hidden_dentry, and call d_delete on dentry (Marc Schaeffer bug #1); (wrapfs_mknod): add check_parent(), DQUOT_INIT; (wrapfs_rename): dget/dput dentries; (wrapfs_readlink): add code to handle name mangling (wrapfs_readpage): use new functions page_cache_alloc, page_cache_entry, page_cache_free; add two args to wrapfs_encode_block; change logic flow to avoing leaving locked pages behind (wrapfs_permission): call permission(), remove duplicated code (wrapfs_updatepage): add two args to wrapfs_encode_block (wrapfs_iops): rewrite using the GNU initializers * fist.h: include <linux/quotaops.h> (for DQUOT_*); add typedefs for vnode_t and vfs_t; remove stale code * file.c (wrapfs_llseek): event was renamed to global_event (wrapfs_read): add two args to wrapfs_decode_block() (wrapfs_write): add two args to wrapfs_encode_block() wrapfs_getdents_callback: new structure to support name mangling (wrapfs_filldir): new function to support name mangling (wrapfs_readdir): use wrapfs_filldir if doing name mangling (wrapfs_ioctl): add FIST_IOCTL_ECLS (wrapfs_open): add get_write_access/put_write_access calls (Marc Schaeffer bug #3); don't leak dentries if open fails (wrapfs_fops): rewrite using the GNU initializers * dentry.c: conditionally include fist_wrapfs.h (wrapfs_d_revalidate): fix to return 1 (boolean function) (wrapfs_d_release): set private data to NULL; call dput only on non-NULL hidden_dentry (wrapfs_d_iput): enclose in #ifdef FIST_DEBUG wrapfs_dops: rewrite using the GNU initializers * Makefile: sync with 2.3 version
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -