📄 changelog
字号:
2001-10-19 Ion Badulescu <ion@guppy.limebrokerage.com> * mmap.c: added conditional schedule() calls in all while loops, to improve latency when doing lots of data movement; allow block ciphers, but restrict encoding_blocksize to 1 for now2001-10-18 Ion Badulescu <ion@guppy.limebrokerage.com> * mmap.c: use __FUNCTION__ in several fist_dprint()'s (wrapfs_commit_write): handle all possible cases of write-in-the-middle with stream cyphers; disallow block cyphers for now; optimize wrapfs_encode_block usage; properly mark our inode as dirty * main.c: added MODULE_LICENSE("LGPL") * fist.h (MODULE_LICENSE): provide stub if not defined elsewhere2001-10-18 Ion Badulescu <ionut@buggy.badula.org> * mmap.c (wrapfs_get1page): moved here from aux.c, compiled in if encoding type is not 'none' (wrapfs_do_readpage): clear out the end of an incomplete page [fixes one corruption case] (wrapfs_commit_write): don't allow holes in an encoded file, instead encode them and write them out; deal properly with different encoding techniques [fixes another corruption case] * all: use PAGE_CACHE_SIZE instead of PAGE_SIZE * doit-nfs.sh: use overlay mounts2001-10-15 Ion Badulescu <ion@guppy.limebrokerage.com> * inode.c (wrapfs_{link,mkdir,mknod}): same fix as for wrapfs_symlink below (wrapfs_{create,link}): add comment about potential a negative dentry being returned by a successful 'create'-type operation, in the SCA code2001-10-12 Ion Badulescu <ion@guppy.limebrokerage.com> * fist.h: fixed problem with MODVERSIONS kernels2001-10-12 Ion Badulescu <ion@guppy.limebrokerage.com> * main.c (wrapfs_read_super): allow LFS if SCA is not used. Have fun with 2GB+ files on cryptfs! :-) * wrapfs.h: prototype for wrapfs_dir_iops * print.c (fist_PageDecrAfter): deal with yet another inconsistency in the Linux VM (fixes problem with 2.4-ac) * main.c (wrapfs_interpose): use wrapfs_dir_fops for directories (wrapfs_parse_options): don't crash if the underlying directory doesn't exist * inode.c (wrapfs_symlink): don't interpose if the hidden_dentry is negative, d_drop our dentry instead (fixes problem when stacking over NFSv2) (wrapfs_dir_iops): new set of inode ops for directories only; (wrapfs_symlink_iops, wrapfs_main_iops): drastically reduced set of inode ops (fixes "can cd into file" problem) * fist.h: linux/malloc.h is deprecated, use linux/slab.h instead * file.c (wrapfs_ioctl): return ENOTTY for non-existant ioctl's (fixes problem with 'tar -z')2001-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-04 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu> * main.c (wrapfs_read_super): avoid dereferencing NULL pointer if stopd() is NULL (b/c the mount command failed to include a "-o dir=" option). * print.c (fist_print_sb): sb->s_active and s_count only exist in 2.4.8 and newer.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-29 Ion Badulescu <lionut@gonzales.badula.org> * inode.c (wrapfs_rmdir): no need to set i_nlink to 0 here, it is done (properly) in wrapfs_put_inode()2001-09-29 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu> * inode.c (wrapfs_unlink): no need to special-case if err==ENOENT, because we're now handling negative dentries correctly (wrapfs_rmdir): ditto * 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.2001-09-29 Ion Badulescu <lionut@gonzales.badula.org> * wrapfs.h (fist_copy_attr_all): copy i_rdev between hidden_inode and our inode2001-09-29 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu> * print.c (fist_print_page_flags): PageSwapCache() needs a kernel symbol on 2.4.10 that isn't exported.2001-09-29 Ion Badulescu <lionut@gonzales.badula.org> Fixes to make "cat ." (or any other directory) fail: * super.c (wrapfs_read_inode): use wrapfs_main_iops and wrapfs_main_fops * main.c (wrapfs_interpose): change i_fops to wrapfs_dir_fops for directories (__wrapfs_hidden_dentry): use wrapfs_main_iops and wrapfs_main_fops * inode.c (wrapfs_symlink_iops): renamed from wrapfs_iops_symlink (wrapfs_main_iops): renamed from wrapfs_iops * 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> * print.c (fist_print_buffer_flags): buffer_protected() doesn't exist in 2.4.10 (big VM changes)2001-09-29 Ion Badulescu <lionut@gonzales.badula.org> * inode.c (wrapfs_permission): use vfs_permission() instead of our own concocted subset of it2001-09-29 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu> * fist_ioctl.c: include string.h * dentry.c (wrapfs_d_delete): add parentheses around assignment inside a condition, plus a printf2001-09-29 Ion Badulescu <lionut@gonzales.badula.org> Changes that eliminate the need for a kernel patch: * file.c (wrapfs_open): massage flags to include read access to the hidden file, if we are filtering data; call dentry_open() with only two args * aux.c (wrapfs_idx_open): call dentry_open() with only two args; remove one of the function's own arguments as well * inode.c (wrapfs_truncate_and_enlarge): ditto; also call wrapfs_idx_open() with only two args, due to the dentry_open() change * mmap.c: copied sync_page() from mm/filemap.c, because it's not an exported function * main.c (wrapfs_read_super): initialize sb->s_maxbytes for both 2.4.[23], to catch the RH 2.4.2-2 kernel (which is really a 2.4.3-pre kernel and thus needs that change)2001-09-29 Ion Badulescu <lionut@gonzales.badula.org> * dentry.c (wrapfs_d_delete): a dentry could have no private data, don't dereference blindly * inode.c (wrapfs_lookup): added a comment about "weird" dentries (without either d_inode or private data) * Makefile (TOPINC): use /lib/modules/<uname -r>/build/include * ALL: minor updates to support kernels up to 2.4.92001-03-22 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * main.c (wrapfs_read_super): Linux 2.4.2-ac3 and beyond has code in mm/filemap.c:generic_file_write() that requires sb->s_maxbytes to be populated. If not set, all write()s under that sb will return 0. Patch from Paul Walmsley <shag@booyaka.com>. (wrapfs_read_super): for now, set s_maxbytes to MAX_NON_LFS, b/c we don't yet support file systems with files larger than 2GB.2000-05-24 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * inode.c (wrapfs_unlink): call d_delete() because dput() does that too. (wrapfs_rmdir): call d_delete() because dput() does that too. (wrapfs_truncate_and_enlarge): call mntget() before dentry_open() because it will decrement the mnt's refcount if error, and fput() will do an mntput() for us upon file close. * file.c (wrapfs_open): call mntget() before dentry_open() because it will decrement the mnt's refcount if error, and fput() will do an mntput() for us upon file close. * dentry.c (wrapfs_d_delete): fully implement d_delete, and have it call the lower file system's ->d_delete method if the latter has one. This is needed since 2.3.99-pre9 changed dput() and now have dput() call d_delete() and ->d_drop. * aux.c (wrapfs_idx_open): call mntget() before dentry_open() because it will decrement the mnt's refcount if error, and fput() will do an mntput() for us upon file close. (wrapfs_idx_set_entry): bug fix. move holes support code outside the previous "if" statement, which had nothing to do holes.2000-05-16 Erez Zadok <ezk@earth.cs.columbia.edu> * inode.c (wrapfs_truncate_and_enlarge): call mntget since we've called dentry_open(). * aux.c (wrapfs_idx_open): call mntget since we've called dentry_open(). * file.c (wrapfs_open): use ftohf() not file->private_data. (wrapfs_open): call mntget(hidden_file->f_vfsmnt) else we BUG() in wrapfs_release() when it calls fput(hidden_file). * mmap.c: All calls to ->readpage, ->writepage, wrapfs_get1page, and read_cache_page changed to pass file instead of dentry. * inode.c (wrapfs_truncate_and_enlarge): use fake a struct file so we can pass it to wrapfs_get1page (which absolutely needs it). An ugly hack because notify_change doesn't take a struct file and it isn't that easy to make it do so. * aux.c (wrapfs_get1page): now takes a file, not dentry. All calls to ->readpage and read_cache_page changed to pass file instead of dentry.2000-05-16 Erez Zadok <ezk@beetle.mcl.cs.columbia.edu> * mmap.c (wrapfs_writepage): ->writepage doesn't take struct dentry any more (2.3.99-pre7). * main.c (wrapfs_parse_options): walk_init renamed to path_init in 2.3.99-pre7. (wrapfs_parse_options): walk_name renamed to path_walk.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-01 Erez Zadok <ezk@beetle.mcl.cs.columbia.edu> * sca_aux.c, sca_aux.h, sca_list_idx.c, sca_mk_idx.c, sca_read.c, sca_write.c: SCA support user-level files to print an index file, recover it, decode a file, and encode a file. These files are generated only if SCA code is on. * aux.c (wrapfs_{read,write}_file): filp_open doesn't need 4th arg.2000-04-30 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * mmap.c (wrapfs_sync_page): define new method sync_page.2000-04-30 Erez Zadok <ezk@beetle.mcl.cs.columbia.edu> * mmap.c (wrapfs_writepage): now takes an extra argument, struct file (2.3.99-pre6). Let's hope that it can never be NULL.2000-04-24 Ion Badulescu <ib42@earth.cs.columbia.edu> * inode.c (wrapfs_rmdir): handle cases where the file/dir is removed through the hidden fs2000-04-24 Ion Badulescu <ib42@earth.cs.columbia.edu> Updated to 2.3.99-pre6-pre5: * wrapfs.h: added hidden_mnt to struct wrapfs_sb_info * super.c (wrapfs_put_super): mntput() the hidden_mnt; #ifdef FIST_DEBUG the delete_inode() method, as it's not needed anymore * main.c (wrapfs_interpose): use wrapfs_iops_symlink if the inode is a symlink
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -