Erez Zadok [Fri, 13 May 2022 23:40:54 +0000 (19:40 -0400)]
Wrapfs: add ->bmap support
Signed-off-by: Aditya Sonavane <aditya.sonavane@stonybrook.edu>
Signed-off-by: Erez Zadok <ezk@cs.stonybrook.edu>
Erez Zadok [Sat, 7 May 2022 22:11:24 +0000 (18:11 -0400)]
wrapfs: copyright year update
Erez Zadok [Sat, 7 May 2022 20:47:38 +0000 (16:47 -0400)]
wrapfs: change http URLs to https
Erez Zadok [Tue, 17 Dec 2019 04:55:55 +0000 (23:55 -0500)]
remove unnecessary files
Erez Zadok [Sun, 15 Dec 2019 23:58:57 +0000 (18:58 -0500)]
merge changes
Erez Zadok [Sat, 14 Dec 2019 05:04:41 +0000 (00:04 -0500)]
wrapfs: update copyright
Erez Zadok [Sat, 14 Dec 2019 04:19:32 +0000 (23:19 -0500)]
wrapfs: remove unused variable
Erez Zadok [Fri, 29 Mar 2019 20:44:59 +0000 (16:44 -0400)]
update copyright
Erez Zadok [Fri, 29 Mar 2019 20:38:34 +0000 (16:38 -0400)]
fix spell error
Rohit Kumar [Fri, 30 Mar 2018 12:11:39 +0000 (08:11 -0400)]
file 2
Rohit Kumar [Fri, 30 Mar 2018 11:14:31 +0000 (07:14 -0400)]
Rohit: Test file 1
Erez Zadok [Sun, 19 Feb 2017 00:11:21 +0000 (19:11 -0500)]
Wrapfs: ->iget fixes
Change where we igrab/iput to ensure we always hold a valid lower_inode.
Return ENOMEM (not EACCES) if iget5_locked returns NULL.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 18 Feb 2017 20:13:15 +0000 (15:13 -0500)]
Wrapfs: update copyrights for 2017
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Mon, 14 Dec 2015 23:55:52 +0000 (18:55 -0500)]
Wrapfs: update nlinks after rename
Signed-off-by: Logeswari P Viswanath <logeswari.pv@hpe.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Thu, 5 Nov 2015 01:22:33 +0000 (20:22 -0500)]
Wrapfs: update copyright year to 2015
Erez Zadok [Thu, 5 Nov 2015 01:22:32 +0000 (20:22 -0500)]
Wrapfs: use vfs xattr helpers
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 16 Aug 2014 03:41:08 +0000 (23:41 -0400)]
Wrapfs: properly copy meta-data after AIO operations from lower inode
Signed-off-by: Mengyang Li <li.mengyang@stonybrook.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Mon, 11 Aug 2014 23:34:52 +0000 (19:34 -0400)]
Wrapfs: leave placeholders for updating upper inode after AIO
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sun, 10 Aug 2014 07:38:47 +0000 (03:38 -0400)]
Wrapfs: protect lower_file by ref-count during aio operation
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Signed-off-by: Mengyang Li <li.mengyang@stonybrook.edu>
Erez Zadok [Thu, 26 Jun 2014 03:49:20 +0000 (23:49 -0400)]
Wrapfs: fix ->llseek to update upper and lower offsets
Fixes bug: xfstests generic/257. f_pos consistently is required by and
only by dir_ops->wrapfs_readdir, main_ops is not affected.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Signed-off-by: Mengyang Li <li.mengyang@stonybrook.edu>
Erez Zadok [Thu, 26 Jun 2014 03:49:20 +0000 (23:49 -0400)]
Wrapfs: support extended attributes (xattr) operations
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Signed-off-by: Mengyang Li <li.mengyang@stonybrook.edu>
Erez Zadok [Sat, 21 Jun 2014 01:26:02 +0000 (21:26 -0400)]
Wrapfs: support asynchronous-IO (AIO) operations
Signed-off-by: Li Mengyang <li.mengyang@stonybrook.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 21 Jun 2014 01:26:02 +0000 (21:26 -0400)]
Wrapfs: support direct-IO (DIO) operations
Signed-off-by: Li Mengyang <li.mengyang@stonybrook.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Thu, 15 May 2014 04:15:52 +0000 (00:15 -0400)]
Wrapfs: implement vm_ops->page_mkwrite
Some file systems (e.g., ext4) require it. Reported by Ted Ts'o.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Thu, 3 Apr 2014 17:34:38 +0000 (13:34 -0400)]
Wrapfs: update documentation
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Thu, 3 Apr 2014 17:34:28 +0000 (13:34 -0400)]
Wrapfs: update maintainers
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Tue, 21 Jan 2014 08:04:36 +0000 (03:04 -0500)]
Wrapfs: update documentation
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Tue, 21 Jan 2014 06:09:06 +0000 (01:09 -0500)]
Wrapfs: 2014 Copyright update
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 20 Nov 2013 03:14:12 +0000 (22:14 -0500)]
Wrapfs: properly use fsstack_copy_attr_all's 3rd arg in ->ioctl
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 5 Jun 2013 05:43:41 +0000 (01:43 -0400)]
Wrapfs: copy lower inode attributes in ->ioctl
Some ioctls (e.g., EXT2_IOC_SETFLAGS) can change inode attributes, so copy
them from lower inode.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 5 Jun 2013 05:42:41 +0000 (01:42 -0400)]
Wrapfs: remove unnecessary call to vm_unmap in ->mmap
Code is unnecessary and causes deadlocks in newer kernels.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Mon, 3 Jun 2013 01:53:17 +0000 (21:53 -0400)]
patch copyright-2013.patch
Erez Zadok [Fri, 9 Sep 2011 04:43:49 +0000 (00:43 -0400)]
Wrapfs: drop our dentry in ->rmdir
Also clear nlinks on our inode.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Mon, 2 May 2011 06:00:02 +0000 (02:00 -0400)]
Wrapfs: lookup fixes
Don't use lookup_one_len any longer (doesn't work for NFS).
Initialize lower wrapfs_dentry_info so lower_path is NULL.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 18 Mar 2011 17:26:53 +0000 (13:26 -0400)]
Wrapfs: correct use of copy_attr_all, old style
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 18 Mar 2011 17:12:43 +0000 (13:12 -0400)]
Wrapfs: remove extra debug in rmdir
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 18 Mar 2011 16:37:32 +0000 (12:37 -0400)]
Wrapfs: checkpatch fixes
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 18 Mar 2011 03:04:47 +0000 (23:04 -0400)]
Wrapfs: copyright update for 2011
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 18 Mar 2011 03:04:47 +0000 (23:04 -0400)]
Wrapfs: better handling of NFS silly-renamed files
In ->unlink, if we try to unlink an NFS silly-renamed file, NFS returns
-EBUSY. We have to treat it as a success and return 0 to the VFS. NFS will
remove silly-deleted files later on anyway.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 18 Mar 2011 03:04:47 +0000 (23:04 -0400)]
Wrapfs: update parent directory inode size in inode ops
After ->unlink, ->rmdir, and ->rename, we need to copy the (possibly
changed) inode size of the parent directory(ies) where the operation took
place.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 18 Mar 2011 03:04:47 +0000 (23:04 -0400)]
Wrapfs: remove unnecessary calls to copy lower inode->n_links
Removed from ->create, ->symlink, and ->mknod.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Tue, 8 Mar 2011 06:15:15 +0000 (01:15 -0500)]
Wrapfs: ->setattr fixes
Call inode_change_ok on our inode, not lower.
Don't copy inode sizes (VFS does it).
Pass lower file in struct iattr passed to notify_change on lower inode.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 21 Apr 2010 01:24:40 +0000 (21:24 -0400)]
Wrapfs: update documentation
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Tue, 20 Apr 2010 18:15:06 +0000 (14:15 -0400)]
Wrapfs: avoid an extra path_get/put pair in wrapfs_open
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 22 Jan 2010 02:15:01 +0000 (21:15 -0500)]
Wrapfs: decrement nd_path on follow_link error
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Tue, 5 Jan 2010 09:24:05 +0000 (04:24 -0500)]
Wrapfs: don't mention kernel version in modload message
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Tue, 5 Jan 2010 09:16:08 +0000 (04:16 -0500)]
Wrapfs/VFS: remove init_lower_nd and unexport release_lower_nd
Only wrapfs_create used it, and it is unnecessary to init a completely new
nameidata for the lower file system.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 2 Jan 2010 22:21:56 +0000 (17:21 -0500)]
Wrapfs: use iget5_locked
Use iget5_locked instead of iget_locked, because an inode number alone isn't
enough for wrapfs to identify an inode (need to also ensure we match the
glower inode). This fixes a number of races when mounting on top of NFS.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Mon, 4 Jan 2010 23:54:51 +0000 (18:54 -0500)]
Wrapfs: handle silly-renamed NFS files
In our ->unlink and ->rmdir, if the lower dentry is already silly-renamed
(NFS), then we treat this unlink operation as if it already succeeded, and
don't actually call vfs_unlink on the lower dentry (NFS may return EBUSY).
Note: VFS also has special handling for silly-renamed files.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sun, 27 Dec 2009 07:01:28 +0000 (02:01 -0500)]
Wrapfs: document necessary d_drop in ->unlink
LTP will fail if this d_drop isn't there.
Funny, you'd think the VFS should do it for you.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sun, 27 Dec 2009 07:06:17 +0000 (02:06 -0500)]
Wrapfs: update copyright year
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sun, 27 Dec 2009 00:24:30 +0000 (19:24 -0500)]
Wrapfs: minor cleanups, comment updates, LoC
Remove unnecessary BUG assertions.
Update comments.
Update LoC in documentation.
Erez Zadok [Sat, 26 Dec 2009 21:55:53 +0000 (16:55 -0500)]
Wrapfs: remove unused mode variable from ->symlink
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 20:35:33 +0000 (15:35 -0500)]
Wrapfs: remove d_deleted helper in ->open
Still need to check for unhashed dentries in ->open.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 22:54:47 +0000 (17:54 -0500)]
Wrapfs: use mnt_want/drop_write helpers
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 20:06:28 +0000 (15:06 -0500)]
Wrapfs: check for errors in ->rmdir
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 25 Dec 2009 22:10:25 +0000 (17:10 -0500)]
Wrapfs: fix race in ->mmap
Discovered using LTP rwtest03/04 tests.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 25 Dec 2009 19:04:37 +0000 (14:04 -0500)]
Wrapfs: support the mand mount option
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 19:23:07 +0000 (14:23 -0500)]
Wrapfs: remove unnecessary checks from file->release
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Thu, 24 Dec 2009 20:36:12 +0000 (15:36 -0500)]
Wrapfs: use only d_add in instantiate
Also, no need for special versions of instantiate.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Thu, 24 Dec 2009 20:13:38 +0000 (15:13 -0500)]
Wrapfs: mention lower file system type and path on mount
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 19:18:59 +0000 (14:18 -0500)]
Wrapfs: merge wrapfs_fill_inode into wrapfs_iget
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 23 Dec 2009 21:18:03 +0000 (16:18 -0500)]
Wrapfs: move wrapfs_iget and wrapfs_lookup to lookup.c
Better placed logically. Avoids a couple of externs.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 23 Dec 2009 21:09:29 +0000 (16:09 -0500)]
Wrapfs: cleanup decision login for fill_inode in interpose
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 23 Dec 2009 21:03:28 +0000 (16:03 -0500)]
Wrapfs: don't pass dentry to wrapfs_fill_inode
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 23 Dec 2009 20:25:53 +0000 (15:25 -0500)]
Wrapfs: rename wrapfs_lookup_full to __wrapfs_lookup
Also remove dead code.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 18:55:57 +0000 (13:55 -0500)]
Wrapfs: don't call path_put inside a spinlock
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 23 Dec 2009 07:03:15 +0000 (02:03 -0500)]
Wrapfs: use generic_show_options
Wrapfs no longer has any special mount options.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 18:53:08 +0000 (13:53 -0500)]
Wrapfs: remove d_splice_alias code from interpose
Unnecessary until and if we export wrapfs over NFS.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 22:50:29 +0000 (17:50 -0500)]
Wrapfs: remove old lower dentry/mnt helpers
Unnecessary as we're now using lower_path helpers.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 18:46:54 +0000 (13:46 -0500)]
Wrapfs: use lower-path helpers in inode operations
Also remove unnecessary code.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 18:22:21 +0000 (13:22 -0500)]
Wrapfs: use lower-path helpers in file operations
Also remove unnecessary code and cleanup.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 18:15:59 +0000 (13:15 -0500)]
Wrapfs: use lower-path helpers in dentry operations
And remove dead code from ->d_revalidate.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 23 Dec 2009 01:52:03 +0000 (20:52 -0500)]
Wrapfs: use lower-path helpers in main operations
Also remove wrapfs_parse_options because we don't support any special
options. Take the lower mount directory from the dev_name argument of
mount(2).
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 22:32:13 +0000 (17:32 -0500)]
Wrapfs: use lower-path helpers in lookup and interpose
Also simplify code, cut dead code, and minor cleanup.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 23 Dec 2009 01:32:49 +0000 (20:32 -0500)]
Wrapfs: use lower-path helpers in superblock operations
Also remove unnecessary code from ->statfs.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 18:02:46 +0000 (13:02 -0500)]
Wrapfs: introduce new lower-path based helpers
These will help remove the need for dentry/mnt specific helpers. Everything
should be handled as a path
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 18:00:23 +0000 (13:00 -0500)]
Wrapfs: remove leftovers of per-function dentry/file revalidation
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Mon, 21 Dec 2009 20:25:17 +0000 (15:25 -0500)]
Wrapfs: remove unnecessary calls to dget_parent
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 17:46:39 +0000 (12:46 -0500)]
Wrapfs: cleanup and fixes in ->open
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Mon, 14 Dec 2009 17:13:46 +0000 (12:13 -0500)]
Wrapfs: ->show_options doesn't need to display per-branch mount mode
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 17:45:15 +0000 (12:45 -0500)]
Wrapfs: remove mention of "branches" from comments
And remove dead code from file->release.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 12 Dec 2009 06:24:06 +0000 (01:24 -0500)]
Wrapfs: no need to initialize err variable in ->unlink
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 17:43:18 +0000 (12:43 -0500)]
Wrapfs: comments and updates to ->d_revalidate
Our dentry should be invalid if there is no lower dentry.
Copy lower attributes only if the lower dentry is valid.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 9 Dec 2009 02:51:49 +0000 (21:51 -0500)]
wrapfs: simple optimization in permission
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 9 Dec 2009 02:50:21 +0000 (21:50 -0500)]
Wrapfs: remove unnecessary code from lookup_full
No need to d_drop our own dentry: VFS should.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Mon, 21 Dec 2009 16:51:34 +0000 (11:51 -0500)]
Wrapfs: cleanup lookup and interpose
Remove two INTERPOSE flags and instead pass a dentry pointer to be filled in
by interpose only if called from lookup. Remove unnecessary code.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Mon, 21 Dec 2009 16:41:27 +0000 (11:41 -0500)]
Wrapfs: remove debugging support
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sat, 26 Dec 2009 17:40:20 +0000 (12:40 -0500)]
Wrapfs: remove unnecessary d_drop calls in wrapfs_link
Unnecessary because it would unhash perfectly valid dentries, causing them
to have to be re-looked up the next time they're needed, which presumably is
right after.
Signed-off-by: Aseem Rastogi <arastogi@cs.sunysb.edu>
Signed-off-by: Shrikar archak <shrikar84@gmail.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sun, 6 Dec 2009 03:30:05 +0000 (22:30 -0500)]
Wrapfs: copy inode size and blocks from lower inode on d_revalidate
Otherwise our inode size may be incorrect if the lower file system takes a
bit of time to update its inode sizes (e.g., nfs4).
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 9 Dec 2009 16:38:46 +0000 (11:38 -0500)]
Wrapfs: cleanup wrapfs_iget
Remove unnecessary iput() on lower inode.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 9 Dec 2009 15:52:08 +0000 (10:52 -0500)]
Unionfs: switch from d->d_iput from sb->drop_inode
This makes reference counting easier and saner to handle, and fixes bugs.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 9 Dec 2009 15:49:43 +0000 (10:49 -0500)]
Wrapfs: inherit inode number from lower inode
Fixes a bug in hardlinks: hardlinked upper inodes should have same inode num.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Tue, 8 Dec 2009 23:27:48 +0000 (18:27 -0500)]
wrapfs: remove unnecessary comment in permission
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Sun, 6 Dec 2009 03:19:56 +0000 (22:19 -0500)]
Wrapfs: fix typo in setattr comment
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Fri, 4 Dec 2009 03:16:15 +0000 (22:16 -0500)]
Wrapfs: fix typo in documentation.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Mon, 30 Nov 2009 05:52:39 +0000 (00:52 -0500)]
Wrapfs: remove lockdep off/on in wrapfs_rename
Remove lockdep on/off pair. Issue is now fixed by adding a new
lock_class_key in alloc_super.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Signed-off-by: Shrikar archak <shrikar84@gmail.com>
Roland Dreier [Tue, 1 Dec 2009 01:18:12 +0000 (20:18 -0500)]
VFS: add lockdep annotation to s_vfs_rename_key for ecryptfs
> =============================================
> [ INFO: possible recursive locking detected ]
> 2.6.31-2-generic #14~rbd3
> ---------------------------------------------
> firefox-3.5/4162 is trying to acquire lock:
> (&s->s_vfs_rename_mutex){+.+.+.}, at: [<
ffffffff81139d31>] lock_rename+0x41/0xf0
>
> but task is already holding lock:
> (&s->s_vfs_rename_mutex){+.+.+.}, at: [<
ffffffff81139d31>] lock_rename+0x41/0xf0
>
> other info that might help us debug this:
> 3 locks held by firefox-3.5/4162:
> #0: (&s->s_vfs_rename_mutex){+.+.+.}, at: [<
ffffffff81139d31>] lock_rename+0x41/0xf0
> #1: (&sb->s_type->i_mutex_key#11/1){+.+.+.}, at: [<
ffffffff81139d5a>] lock_rename+0x6a/0xf0
> #2: (&sb->s_type->i_mutex_key#11/2){+.+.+.}, at: [<
ffffffff81139d6f>] lock_rename+0x7f/0xf0
>
> stack backtrace:
> Pid: 4162, comm: firefox-3.5 Tainted: G C 2.6.31-2-generic #14~rbd3
> Call Trace:
> [<
ffffffff8108ae74>] print_deadlock_bug+0xf4/0x100
> [<
ffffffff8108ce26>] validate_chain+0x4c6/0x750
> [<
ffffffff8108d2e7>] __lock_acquire+0x237/0x430
> [<
ffffffff8108d585>] lock_acquire+0xa5/0x150
> [<
ffffffff81139d31>] ? lock_rename+0x41/0xf0
> [<
ffffffff815526ad>] __mutex_lock_common+0x4d/0x3d0
> [<
ffffffff81139d31>] ? lock_rename+0x41/0xf0
> [<
ffffffff81139d31>] ? lock_rename+0x41/0xf0
> [<
ffffffff8120eaf9>] ? ecryptfs_rename+0x99/0x170
> [<
ffffffff81552b36>] mutex_lock_nested+0x46/0x60
> [<
ffffffff81139d31>] lock_rename+0x41/0xf0
> [<
ffffffff8120eb2a>] ecryptfs_rename+0xca/0x170
> [<
ffffffff81139a9e>] vfs_rename_dir+0x13e/0x160
> [<
ffffffff8113ac7e>] vfs_rename+0xee/0x290
> [<
ffffffff8113c212>] ? __lookup_hash+0x102/0x160
> [<
ffffffff8113d512>] sys_renameat+0x252/0x280
> [<
ffffffff81133eb4>] ? cp_new_stat+0xe4/0x100
> [<
ffffffff8101316a>] ? sysret_check+0x2e/0x69
> [<
ffffffff8108c34d>] ? trace_hardirqs_on_caller+0x14d/0x190
> [<
ffffffff8113d55b>] sys_rename+0x1b/0x20
> [<
ffffffff81013132>] system_call_fastpath+0x16/0x1b
The trace above is totally reproducible by doing a cross-directory
rename on an ecryptfs directory.
The issue seems to be that sys_renameat() does lock_rename() then calls
into the filesystem; if the filesystem is ecryptfs, then
ecryptfs_rename() again does lock_rename() on the lower filesystem, and
lockdep can't tell that the two s_vfs_rename_mutexes are different. It
seems an annotation like the following is sufficient to fix this (it
does get rid of the lockdep trace in my simple tests); however I would
like to make sure I'm not misunderstanding the locking, hence the CC
list...
Signed-off-by: Roland Dreier <rdreier@cisco.com>
Cc: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Cc: Dustin Kirkland <kirkland@canonical.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Erez Zadok [Mon, 30 Nov 2009 05:49:32 +0000 (00:49 -0500)]
Wrapfs: chdir fix
When lower_dentry is not filled during lookup, chdir can oops.
Signed-off-by: Aseem Rastogi <arastogi@cs.sunysb.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Erez Zadok [Wed, 18 Nov 2009 01:19:51 +0000 (20:19 -0500)]
patch wrapfs-update-documentation.patch