📄 changelog
字号:
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 (wrapfs_parse_options): determine and store hidden_mnt * inode.c (wrapfs_readlink): return -EINVAL instead of -EPERM if the hidden inode doesn't support readlink (wrapfs_follow_link): changed return type, use vfs_follow_link (wrapfs_iops_symlink): new inode_operations structure, used only for symlinks * aux.c (wrapfs_idx_open), file.c (wrapfs_open): pass hidden_mnt to dentry_open * aux.c (fist_lookup, wrapfs_idx_lookup), inode.c (wrapfs_lookup): use lookup_one instead of lookup_dentry2000-04-23 Ion Badulescu <ib42@earth.cs.columbia.edu> * Changed index handling routines to allocate memory as whole pages2000-04-23 Erez Zadok <ezk@earth.cs.columbia.edu> * doit.sh (PATH): don't force insmod with '-f' to insert the module. Too dangerous. * make all kfree() use kfree_s() as much as possible (presumably kfree_s is faster). * rename functions that may conflict with similar other modules to wrapfs_*. * Makefile-4-kernel: new file, a file systems specific Linux kernel makefile you can drop into a Linux kernel source tree. * *.c: include local headers with "foo.h" quotes not <foo.h> * wrapfs.h: simple optional code to count number of writes and number of writes in the middle.2000-04-22 Ion Badulescu <ib42@earth.cs.columbia.edu> * inode.c (wrapfs_unlink): fixes for cases when files get removed from under us2000-04-18 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * file.c (wrapfs_ioctl): return 0 or 1 for fast-tail flag.2000-04-18 Ion Badulescu <ib42@earth.cs.columbia.edu> * fast tails work, other bugs fixed2000-04-16 Ion Badulescu <ib42@earth.cs.columbia.edu> * mmap.c: added initial untested support for fast tails, probably broke everything else in the process :-); added kmap/kunmap calls where necessary * aux.c (wrapfs_idx_read/write): read flags from the disk, write them back; remove modified flag, integrate with the other flags2000-04-15 Erez Zadok <ezk@vir.cs.columbia.edu> * fist_ioctl.c (main): -d option now must be used for set/get debugging value. new -f option can be used to set/get the global fast-tail flag.2000-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-14 Johan M. Andersen <johan@beetle.mcl.cs.columbia.edu> * aux.c: remove wrapfs_encode_buffer and wrapfs_decode_buffer, they are algorithm specific.2000-04-14 Ion Badulescu <ib42@earth.cs.columbia.edu> * vm_area.c: ifdef'ed out the entire code * inode.c (wrapfs_unlink): don't complain if symlinks don't have index files (wrapfs_readlink): removed bogus dprint() which could result in a bad page fault since the strings wasn't null-terminated; removed old versions of truncate and enlarge; moved get1page to aux.c * file.c (wrapfs_mmap): ifdef'ed out, not needed * aux.c (get1page): moved here from mmap.c; made idx_* calls non-static as they are called from other files * Makefile (O_OBJS): removed vm_area.o2000-04-13 Johan M. Andersen <johan@vir.cs.columbia.edu> * inode.c (wrapfs_rename): Move the index file as well as the target file. (wrapfs_link): Link the index file as well as the target file2000-04-13 Ion Badulescu <ib42@earth.cs.columbia.edu> * mmap.c (wrapfs_commit_write): fixed calls to shift_*; fixed size of hidden_inode after shifting * inode.c (wrapfs_unlink): fixed the logic in unlink, it's still wrong and ocassionally screws up but it's better than before * file.c (wrapfs_filldir): commented out a fist_dprint call, it can go wild on strings that are not zero-terminated * aux.c (wrapfs_sca_set_entry): fixed hole support, moved sanity check down so it won't complain needlessly2000-04-08 Erez Zadok <ezk@earth.cs.columbia.edu> * basic writing of file and index table works for one page only, the first page.2000-04-08 Erez Zadok <ezk@vir.cs.columbia.edu> * mmap.c (wrapfs_readpage): call readpage() again if we returned from wait_on_page with a page that's not up-to-date; that can happen when a partial page has a few buffers which are ok, but not the whole page.2000-04-07 Johan M. Andersen <johan@vir.cs.columbia.edu> * wrapfs.h (HIDDEN_PAGE_STARTING_OFFSET): Add macros for hidden page info (length and start offset)2000-04-06 Erez Zadok <ezk@vir.cs.columbia.edu> * print.c (fist_print_scafs_header): new routine to print contents of an SCA header. * convert scafs_hdr part of the private inode data to be a real structure, not a malloc'ed one, since we always need to allocate it anyway.2000-04-06 Johan M. Andersen <johan@vir.cs.columbia.edu> * aux.c (wrapfs_sca_read_idx): Add sanity checks to ensure the index file isn't corrupted. * main.c (wrapfs_interpose): move igrab before index-file read so we can reference underlying file in read_idx (wrapfs_interpose): Fix to out_iput by Ion to iput the hidden inode and un-interpose the upper-level inode for non-existing files.2000-04-06 Erez Zadok <ezk@vir.cs.columbia.edu> * aux.c (krealloc): an in-kernel realloc routine. (wrapfs_sca_add_entry): routine to add one more "entry" into an existing in-memory Index Table (IT) header structure.2000-04-06 Johan M. Andersen <johan@vir.cs.columbia.edu> * aux.c (wrapfs_decode_buffers): Fix CVS Breakage, comment (wrapfs_decode_buffers): Make zlib usage match usage in wrapfs_encode_buffers * aux.c (wrapfs_encode_buffers): Fill out and comment2000-04-06 Erez Zadok <ezk@vir.cs.columbia.edu> * main.c (wrapfs_interpose): put back old code; assertion that hidden dentry may be NULL isn't always true. (wrapfs_interpose): when new files are created, the parent hidden inode is locked, and we cannot and shouldn't call sca_read_idx, because it will do a lookup in the same directory and will deadlock.2000-04-05 Johan M. Andersen <johan@vir.cs.columbia.edu> * aux.c (wrapfs_decode_buffers): Move check for full buffers to after the call to inflate. This allows zlib to finish its checksums/etc even though it reports no space left in the output buffer. 2000-04-05 Erez Zadok <ezk@vir.cs.columbia.edu> * inode.c (wrapfs_unlink): remove .idx file before removing main file. * wrapfs.h (INDEX_EXTENSION): define INDEX_EXTENSION here * aux.c (wrapfs_sca_read_idx): if index file does not exist, return ENOENT on looking up main file.2000-04-04 Erez Zadok <ezk@whitestar.cs.columbia.edu> * file.c (wrapfs_filldir): skip listing .idx files.2000-04-03 Ion Badulescu <ib42@moisil.cs.columbia.edu> * wrapfs.h (CURRENT_HIDDEN_PAGEINDEX): fixed silly error which was corrupting data when crossing lower page boundary * mmap.c (wrapfs_readpage): return errors from decode_buffers() * main.c (wrapfs_interpose): reorganized, avoid leaking inodes/dentries on error conditions * aux.c (wrapfs_sca_read_idx): dput the idx_dentry if the index files doesn't exist (wrapfs_decode_buffers): debugging, return consistent error codes * fist.h (print_exit_pointer): new debugging macro * wrapfs.h: changed type of scafs_header.read_size from loff_t to off_t (64 to 32 bits). Note that this will still break on a big-endian platform. (copy_inode_size): fixed calculation of i_blocks * mmap.c (wrapfs_readpage): sanity check: exit if there are no pages needed2000-04-02 Ion Badulescu <ib42@moisil.cs.columbia.edu> * mmap.c (wrapfs_readpage): reinit CURRENT_HIDDEN_PAGE to NULL if error * aux.c (wrapfs_sca_read_idx): changed index table algorithm (wrapfs_count_hidden_pages): implemented (wrapfs_decode_buffers): implemented, currently buggy [all the above is Johan's work] * wrapfs.h (copy_inode_size): compute the different file size and blocks in case of SCA filesystems * 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() (wrapfs_interpose): read index file if SCA filesystem * mmap.c (wrapfs_readpage): added incipient support for SCA2000-04-02 Johan M. Andersen <johan@vir.cs.columbia.edu> * aux.c (wrapfs_sca_read_idx) reads an index-file into memory2000-04-01 Erez Zadok <ezk@earth.cs.columbia.edu> * aux.c (wrapfs_write_file,wrapfs_read_file): fixed "aclfs" typo.2000-04-01 Erez Zadok <ezk@beetle.mcl.cs.columbia.edu> * aux.c: placeholder for SCA/gzipfs code * Makefile (${O_OBJS}): depend on optional included headers2000-04-01 Erez Zadok <ezk@earth.cs.columbia.edu> * inode.c (wrapfs_mkdir,wrapfs_mknod): eliminate unused label (wrapfs_symlink): don't need hidden_symname2000-03-26 Ion Badulescu <ib42@earth.cs.columbia.edu> * inode.c (wrapfs_setattr): unconditionally copy attributes from lower inode moved debugging code around * fist.h: removed declaration of fist_mod_dec_use_count() * file.c: moved debugging code around * Makefile: removed comment2000-03-25 Ion Badulescu <ib42@beetle.mcl.cs.columbia.edu> * debug code rearranged, some deleted2000-03-25 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * mmap.c (wrapfs_commit_write): unlock our page (and don't hang) if the lower file system is full. (wrapfs_commit_write): propagate errors correctly (so we handle a full file system etc.)2000-03-24 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * mmap.c (wrapfs_prepare_write): added struct file pointer to this function, to be in stnc with commit_write. Change in 2.3.99-pre3.2000-03-20 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * major updates for 2.3.99-pre1, but there are still bugs.2000-03-18 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * main.c (wrapfs_read_super): no need to un/lock our superblock, and no need to mainain module count increment/decrement. New module un/loading style. * super.c (wrapfs_statfs): call vfs_statfs. no need to pass bufsize to us or vfs_statfs.2000-03-09 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * make sure the number of links, and inode/block count of the f/s are kept in sync w/ the lower f/s, and they are updated upon unlink, rmdir, rename, mkdir, etc.2000-03-06 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> * updates for 2.3.49.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -