wrapfs-3.6.y.git
3 years agoWrapfs: add ->bmap support wrapfs
Erez Zadok [Fri, 13 May 2022 23:42:42 +0000 (19:42 -0400)]
Wrapfs: add ->bmap support

Signed-off-by: Aditya Sonavane <aditya.sonavane@stonybrook.edu>
Signed-off-by: Erez Zadok <ezk@cs.stonybrook.edu>
3 years agowrapfs: copyright year update
Erez Zadok [Sat, 7 May 2022 22:12:59 +0000 (18:12 -0400)]
wrapfs: copyright year update

3 years agowrapfs: change http URLs to https
Erez Zadok [Sat, 7 May 2022 20:48:52 +0000 (16:48 -0400)]
wrapfs: change http URLs to https

5 years agomerge changes
Erez Zadok [Mon, 16 Dec 2019 00:02:30 +0000 (19:02 -0500)]
merge changes

5 years agowrapfs: update copyright
Erez Zadok [Sat, 14 Dec 2019 05:07:04 +0000 (00:07 -0500)]
wrapfs: update copyright

5 years agowrapfs: remove unused variable
Erez Zadok [Sat, 14 Dec 2019 04:22:27 +0000 (23:22 -0500)]
wrapfs: remove unused variable

6 years agoupdate copyright
Erez Zadok [Fri, 29 Mar 2019 20:46:35 +0000 (16:46 -0400)]
update copyright

6 years agofix spell error
Erez Zadok [Fri, 29 Mar 2019 20:40:41 +0000 (16:40 -0400)]
fix spell error

8 years agoWrapfs: ->iget fixes
Erez Zadok [Sun, 19 Feb 2017 00:11:23 +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>
8 years agoWrapfs: update copyrights for 2017
Erez Zadok [Sat, 18 Feb 2017 20:21:55 +0000 (15:21 -0500)]
Wrapfs: update copyrights for 2017

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
9 years agoWrapfs: support NFS exports
Erez Zadok [Sun, 22 May 2016 05:23:47 +0000 (01:23 -0400)]
Wrapfs: support NFS exports

Based on patch from Sandeep Joshi <sanjos100@gmail.com>.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
9 years agoWrapfs: use d_splice_alias
Erez Zadok [Sun, 22 May 2016 05:23:47 +0000 (01:23 -0400)]
Wrapfs: use d_splice_alias

Refactor interpose code to allow lookup to use d_splice_alias.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
9 years agoWrapfs: update nlinks after rename
Erez Zadok [Mon, 14 Dec 2015 22:57:13 +0000 (17:57 -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>
9 years agoWrapfs: update copyright year to 2015
Erez Zadok [Wed, 4 Nov 2015 05:57:47 +0000 (00:57 -0500)]
Wrapfs: update copyright year to 2015

9 years agoWrapfs: use vfs xattr helpers
Erez Zadok [Wed, 4 Nov 2015 05:57:47 +0000 (00:57 -0500)]
Wrapfs: use vfs xattr helpers

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoWrapfs: properly copy meta-data after AIO operations from lower inode
Erez Zadok [Sat, 16 Aug 2014 03:19:01 +0000 (23:19 -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>
11 years agoWrapfs: leave placeholders for updating upper inode after AIO
Erez Zadok [Mon, 11 Aug 2014 22:55:46 +0000 (18:55 -0400)]
Wrapfs: leave placeholders for updating upper inode after AIO

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoWrapfs: protect lower_file by ref-count during aio operation
Erez Zadok [Sun, 10 Aug 2014 06:13:15 +0000 (02:13 -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>
11 years agoWrapfs: fix ->llseek to update upper and lower offsets
Erez Zadok [Thu, 26 Jun 2014 03:18:10 +0000 (23:18 -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>
11 years ago Wrapfs: support extended attributes (xattr) operations
Erez Zadok [Thu, 26 Jun 2014 03:18:10 +0000 (23:18 -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>
11 years agoWrapfs: support asynchronous-IO (AIO) operations
Erez Zadok [Sat, 21 Jun 2014 00:24:41 +0000 (20:24 -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>
11 years agoWrapfs: support direct-IO (DIO) operations
Erez Zadok [Sat, 21 Jun 2014 00:24:41 +0000 (20:24 -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>
11 years agoWrapfs: implement vm_ops->page_mkwrite
Erez Zadok [Thu, 15 May 2014 04:16:06 +0000 (00:16 -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>
11 years agoWrapfs: update documentation
Erez Zadok [Thu, 3 Apr 2014 18:16:44 +0000 (14:16 -0400)]
Wrapfs: update documentation

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoWrapfs: update maintainers
Erez Zadok [Thu, 3 Apr 2014 18:16:38 +0000 (14:16 -0400)]
Wrapfs: update maintainers

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoWrapfs: update documentation
Erez Zadok [Tue, 21 Jan 2014 08:25:46 +0000 (03:25 -0500)]
Wrapfs: update documentation

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
11 years agoWrapfs: 2014 Copyright update
Erez Zadok [Tue, 21 Jan 2014 06:19:27 +0000 (01:19 -0500)]
Wrapfs: 2014 Copyright update

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: copy lower inode attributes in ->ioctl
Erez Zadok [Wed, 5 Jun 2013 05:36:58 +0000 (01:36 -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>
12 years agoWrapfs: remove unnecessary call to vm_unmap in ->mmap
Erez Zadok [Wed, 5 Jun 2013 05:36:58 +0000 (01:36 -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>
12 years agopatch copyright-2013.patch
Erez Zadok [Mon, 3 Jun 2013 04:24:31 +0000 (00:24 -0400)]
patch copyright-2013.patch

12 years agoWrapfs: dentry_open() no longer does mntput/dput
Erez Zadok [Mon, 3 Jun 2013 04:24:31 +0000 (00:24 -0400)]
Wrapfs: dentry_open() no longer does mntput/dput

We need to grab a reference on the path before dentry_open, and drop it
after.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: no need to call mnt_want_write any longer
Erez Zadok [Mon, 3 Jun 2013 04:24:30 +0000 (00:24 -0400)]
Wrapfs: no need to call mnt_want_write any longer

Apparently this is now being done by the VFS.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: ->lookup takes flags not a nameidata
Erez Zadok [Mon, 3 Jun 2013 04:24:30 +0000 (00:24 -0400)]
Wrapfs: ->lookup takes flags not a nameidata

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: ->create no longer takes a nameidata, only a flag
Erez Zadok [Mon, 3 Jun 2013 04:24:30 +0000 (00:24 -0400)]
Wrapfs: ->create no longer takes a nameidata, only a flag

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: ->d_revalidate now takes namei flags, not nameidata
Erez Zadok [Mon, 3 Jun 2013 04:24:29 +0000 (00:24 -0400)]
Wrapfs: ->d_revalidate now takes namei flags, not nameidata

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: struct nameidata no longer has an open-intent data
Erez Zadok [Mon, 3 Jun 2013 04:24:29 +0000 (00:24 -0400)]
Wrapfs: struct nameidata no longer has an open-intent data

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: dentry_open now takes a struct path
Erez Zadok [Mon, 3 Jun 2013 04:24:28 +0000 (00:24 -0400)]
Wrapfs: dentry_open now takes a struct path

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: use vm_munmap in ->mmap
Erez Zadok [Mon, 3 Jun 2013 04:24:25 +0000 (00:24 -0400)]
Wrapfs: use vm_munmap in ->mmap

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: use clear_inode in evict_inode
Erez Zadok [Sun, 26 May 2013 03:56:52 +0000 (23:56 -0400)]
Wrapfs: use clear_inode in evict_inode

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: use d_make_root
Erez Zadok [Sun, 26 May 2013 03:56:52 +0000 (23:56 -0400)]
Wrapfs: use d_make_root

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: use mode_t
Erez Zadok [Tue, 31 Jan 2012 09:40:19 +0000 (04:40 -0500)]
Wrapfs: use mode_t

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: use set_nlink()
Erez Zadok [Mon, 30 Jan 2012 01:34:27 +0000 (20:34 -0500)]
Wrapfs: use set_nlink()

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: drop our dentry in ->rmdir
Erez Zadok [Fri, 9 Sep 2011 04:47:49 +0000 (00:47 -0400)]
Wrapfs: drop our dentry in ->rmdir

Also clear nlinks on our inode.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: use d_alloc_root
Erez Zadok [Tue, 6 Sep 2011 04:10:32 +0000 (00:10 -0400)]
Wrapfs: use d_alloc_root

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: use d_set_d_op
Erez Zadok [Tue, 6 Sep 2011 04:10:31 +0000 (00:10 -0400)]
Wrapfs: use d_set_d_op

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: use updated vfs_path_lookup prototype
Erez Zadok [Tue, 6 Sep 2011 04:10:30 +0000 (00:10 -0400)]
Wrapfs: use updated vfs_path_lookup prototype

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: ->fsync updates for new prototype
Erez Zadok [Tue, 6 Sep 2011 04:10:30 +0000 (00:10 -0400)]
Wrapfs: ->fsync updates for new prototype

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: support LOOKUP_RCU in ->d_revalidate
Erez Zadok [Tue, 6 Sep 2011 04:10:29 +0000 (00:10 -0400)]
Wrapfs: support LOOKUP_RCU in ->d_revalidate

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: new ->permission prototype and fixes.
Erez Zadok [Tue, 6 Sep 2011 04:10:28 +0000 (00:10 -0400)]
Wrapfs: new ->permission prototype and fixes.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: lookup fixes
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>
12 years agoWrapfs: remove extra debug in rmdir
Erez Zadok [Fri, 18 Mar 2011 17:14:28 +0000 (13:14 -0400)]
Wrapfs: remove extra debug in rmdir

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: checkpatch fixes
Erez Zadok [Fri, 18 Mar 2011 16:38:01 +0000 (12:38 -0400)]
Wrapfs: checkpatch fixes

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: port to 2.6.39
Erez Zadok [Fri, 18 Mar 2011 04:45:17 +0000 (00:45 -0400)]
Wrapfs: port to 2.6.39

Remove lock/unlock_kernel in ->fasync.
Convert from ->get_sb to ->mount op.
Remove include to smp_lock.h, added sched.h.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: copyright update for 2011
Erez Zadok [Fri, 18 Mar 2011 03:21:55 +0000 (23:21 -0400)]
Wrapfs: copyright update for 2011

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: better handling of NFS silly-renamed files
Erez Zadok [Fri, 18 Mar 2011 03:21:55 +0000 (23:21 -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>
12 years agoWrapfs: update parent directory inode size in inode ops
Erez Zadok [Fri, 18 Mar 2011 03:21:55 +0000 (23:21 -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>
12 years agoWrapfs: remove unnecessary calls to copy lower inode->n_links
Erez Zadok [Fri, 18 Mar 2011 03:21:55 +0000 (23:21 -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>
12 years agoWrapfs: ->setattr fixes
Erez Zadok [Tue, 8 Mar 2011 04:20:33 +0000 (23:20 -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>
12 years agoWrapfs: update ->permission prototye and code for new iperm flag
Erez Zadok [Sun, 6 Mar 2011 21:23:16 +0000 (16:23 -0500)]
Wrapfs: update ->permission prototye and code for new iperm flag

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: handle maxbytes properly
Erez Zadok [Fri, 12 Nov 2010 23:15:05 +0000 (18:15 -0500)]
Wrapfs: handle maxbytes properly

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: support ->unlocked_ioctl and ->compat_ioctl
Erez Zadok [Sat, 11 Sep 2010 19:49:33 +0000 (15:49 -0400)]
Wrapfs: support ->unlocked_ioctl and ->compat_ioctl

Old ->ioctl was split into ->unlocked_ioctl and ->compat_ioctl.  Compat
version doesn't need to lock_kernel any longer.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: new vfs_statfs and ->evict_inode prototypes
Erez Zadok [Wed, 11 Aug 2010 03:50:14 +0000 (23:50 -0400)]
Wrapfs: new vfs_statfs and ->evict_inode prototypes

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: update ->fsync prototype
Erez Zadok [Sat, 7 Aug 2010 03:37:29 +0000 (23:37 -0400)]
Wrapfs: update ->fsync prototype

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: update documentation
Erez Zadok [Wed, 21 Apr 2010 01:22:02 +0000 (21:22 -0400)]
Wrapfs: update documentation

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: include slab.h
Erez Zadok [Tue, 20 Apr 2010 19:32:09 +0000 (15:32 -0400)]
Wrapfs: include slab.h

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: avoid an extra path_get/put pair in wrapfs_open
Erez Zadok [Tue, 20 Apr 2010 19:26:02 +0000 (15:26 -0400)]
Wrapfs: avoid an extra path_get/put pair in wrapfs_open

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: decrement nd_path on follow_link error
Erez Zadok [Fri, 26 Feb 2010 08:18:04 +0000 (03:18 -0500)]
Wrapfs: decrement nd_path on follow_link error

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: don't mention kernel version in modload message
Erez Zadok [Tue, 5 Jan 2010 09:27:00 +0000 (04:27 -0500)]
Wrapfs: don't mention kernel version in modload message

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoKconfig: hook to configure Wrapfs
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Kconfig: hook to configure Wrapfs

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoMakefile: hook to compile Wrapfs
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Makefile: hook to compile Wrapfs

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: file system magic number
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: file system magic number

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: Kconfig options
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: Kconfig options

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: main Makefile
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: main Makefile

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: vm_ops operations
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: vm_ops operations

Includes necessary address_space workaround ops.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: mount-time and module-linkage functions
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: mount-time and module-linkage functions

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: lookup-related functions
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: lookup-related functions

Main lookup function, nameidata helpers, and stacking-interposition
functions.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: file operations
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: file operations

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: dentry operations
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: dentry operations

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: inode operations
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: inode operations

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: superblock operations
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: superblock operations

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: main header file
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: main header file

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: Maintainers
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: Maintainers

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoDocumentation: index entry for Wrapfs
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Documentation: index entry for Wrapfs

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoWrapfs: introduction and usage documentation
Erez Zadok [Tue, 5 Jan 2010 01:45:06 +0000 (20:45 -0500)]
Wrapfs: introduction and usage documentation

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
12 years agoLinux 3.6.11 master v3.6.11
Greg Kroah-Hartman [Mon, 17 Dec 2012 17:27:45 +0000 (09:27 -0800)]
Linux 3.6.11

12 years agosctp: fix -ENOMEM result with invalid user space pointer in sendto() syscall
Tommi Rantala [Thu, 22 Nov 2012 03:23:16 +0000 (03:23 +0000)]
sctp: fix -ENOMEM result with invalid user space pointer in sendto() syscall

[ Upstream commit 6e51fe7572590d8d86e93b547fab6693d305fd0d ]

Consider the following program, that sets the second argument to the
sendto() syscall incorrectly:

 #include <string.h>
 #include <arpa/inet.h>
 #include <sys/socket.h>

 int main(void)
 {
         int fd;
         struct sockaddr_in sa;

         fd = socket(AF_INET, SOCK_STREAM, 132 /*IPPROTO_SCTP*/);
         if (fd < 0)
                 return 1;

         memset(&sa, 0, sizeof(sa));
         sa.sin_family = AF_INET;
         sa.sin_addr.s_addr = inet_addr("127.0.0.1");
         sa.sin_port = htons(11111);

         sendto(fd, NULL, 1, 0, (struct sockaddr *)&sa, sizeof(sa));

         return 0;
 }

We get -ENOMEM:

 $ strace -e sendto ./demo
 sendto(3, NULL, 1, 0, {sa_family=AF_INET, sin_port=htons(11111), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ENOMEM (Cannot allocate memory)

Propagate the error code from sctp_user_addto_chunk(), so that we will
tell user space what actually went wrong:

 $ strace -e sendto ./demo
 sendto(3, NULL, 1, 0, {sa_family=AF_INET, sin_port=htons(11111), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EFAULT (Bad address)

Noticed while running Trinity (the syscall fuzzer).

Signed-off-by: Tommi Rantala <tt.rantala@gmail.com>
Acked-by: Vlad Yasevich <vyasevich@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agosctp: fix memory leak in sctp_datamsg_from_user() when copy from user space fails
Tommi Rantala [Tue, 27 Nov 2012 04:01:46 +0000 (04:01 +0000)]
sctp: fix memory leak in sctp_datamsg_from_user() when copy from user space fails

[ Upstream commit be364c8c0f17a3dd42707b5a090b318028538eb9 ]

Trinity (the syscall fuzzer) discovered a memory leak in SCTP,
reproducible e.g. with the sendto() syscall by passing invalid
user space pointer in the second argument:

 #include <string.h>
 #include <arpa/inet.h>
 #include <sys/socket.h>

 int main(void)
 {
         int fd;
         struct sockaddr_in sa;

         fd = socket(AF_INET, SOCK_STREAM, 132 /*IPPROTO_SCTP*/);
         if (fd < 0)
                 return 1;

         memset(&sa, 0, sizeof(sa));
         sa.sin_family = AF_INET;
         sa.sin_addr.s_addr = inet_addr("127.0.0.1");
         sa.sin_port = htons(11111);

         sendto(fd, NULL, 1, 0, (struct sockaddr *)&sa, sizeof(sa));

         return 0;
 }

As far as I can tell, the leak has been around since ~2003.

Signed-off-by: Tommi Rantala <tt.rantala@gmail.com>
Acked-by: Vlad Yasevich <vyasevich@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agobonding: fix race condition in bonding_store_slaves_active
nikolay@redhat.com [Thu, 29 Nov 2012 01:37:59 +0000 (01:37 +0000)]
bonding: fix race condition in bonding_store_slaves_active

[ Upstream commit e196c0e579902f42cf72414461fb034e5a1ffbf7 ]

Race between bonding_store_slaves_active() and slave manipulation
 functions. The bond_for_each_slave use in bonding_store_slaves_active()
 is not protected by any synchronization mechanism.
 NULL pointer dereference is easy to reach.
 Fixed by acquiring the bond->lock for the slave walk.

 v2: Make description text < 75 columns

Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agobonding: Bonding driver does not consider the gso_max_size/gso_max_segs setting of...
Sarveshwar Bandi [Wed, 21 Nov 2012 04:35:03 +0000 (04:35 +0000)]
bonding: Bonding driver does not consider the gso_max_size/gso_max_segs setting of slave devices.

[ Upstream commit 0e376bd0b791ac6ac6bdb051492df0769c840848 ]

Patch sets the lowest gso_max_size and gso_max_segs values of the slave devices during enslave and detach.

Signed-off-by: Sarveshwar Bandi <sarveshwar.bandi@emulex.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agonet: cdc_ncm: add Huawei devices
Bjørn Mork [Tue, 13 Nov 2012 03:19:43 +0000 (03:19 +0000)]
net: cdc_ncm: add Huawei devices

[ Upstream commit bbc8d9228ea8e37ce29fa96150d10b85a2c7be60 ]

A number of Huawei 3G and LTE modems implement a CDC NCM function,
including the necessary functional descriptors, but using a non
standard interface layout and class/subclass/protocol codes.

These devices can be handled by this driver with only a minor
change to the probing logic, allowing a single combined control
and data interface.  This works because the devices
- include a CDC Union descriptor labelling the combined
  interface as both master and slave, and
- have an alternate setting #1 for the bulk endpoints on the
  combined interface.

The 3G/LTE network connection is managed by vendor specific AT
commands on a serial function in the same composite device.
Handling the managment function is out of the scope of this
driver.  It will be handled by an appropriate USB serial
driver.

Reported-and-Tested-by: Olof Ermis <olof.ermis@gmail.com>
Reported-and-Tested-by: Tommy Cheng <tommy7765@yahoo.com>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agousb/ipheth: Add iPhone 5 support
Jay Purohit [Sun, 14 Oct 2012 07:07:21 +0000 (07:07 +0000)]
usb/ipheth: Add iPhone 5 support

[ Upstream commit af1b85e49089f945deb46258b0fc4bc9910afb22 ]

I noticed that the iPhone ethernet driver did not support
iPhone 5. I quickly added support to it in my kernel, here's
a patch.

Signed-off-by: Jay Purohit <jspurohit@velocitylimitless.com>
Acked-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
Signed-off-by: Jan Ceuleers <jan.ceuleers@computer.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoinet_diag: validate port comparison byte code to prevent unsafe reads
Neal Cardwell [Sun, 9 Dec 2012 11:09:54 +0000 (11:09 +0000)]
inet_diag: validate port comparison byte code to prevent unsafe reads

[ Upstream commit 5e1f54201cb481f40a04bc47e1bc8c093a189e23 ]

Add logic to verify that a port comparison byte code operation
actually has the second inet_diag_bc_op from which we read the port
for such operations.

Previously the code blindly referenced op[1] without first checking
whether a second inet_diag_bc_op struct could fit there. So a
malicious user could make the kernel read 4 bytes beyond the end of
the bytecode array by claiming to have a whole port comparison byte
code (2 inet_diag_bc_op structs) when in fact the bytecode was not
long enough to hold both.

Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoinet_diag: avoid unsafe and nonsensical prefix matches in inet_diag_bc_run()
Neal Cardwell [Sat, 8 Dec 2012 19:43:23 +0000 (19:43 +0000)]
inet_diag: avoid unsafe and nonsensical prefix matches in inet_diag_bc_run()

[ Upstream commit f67caec9068cee426ec23cf9005a1dee2ecad187 ]

Add logic to check the address family of the user-supplied conditional
and the address family of the connection entry. We now do not do
prefix matching of addresses from different address families (AF_INET
vs AF_INET6), except for the previously existing support for having an
IPv4 prefix match an IPv4-mapped IPv6 address (which this commit
maintains as-is).

This change is needed for two reasons:

(1) The addresses are different lengths, so comparing a 128-bit IPv6
prefix match condition to a 32-bit IPv4 connection address can cause
us to unwittingly walk off the end of the IPv4 address and read
garbage or oops.

(2) The IPv4 and IPv6 address spaces are semantically distinct, so a
simple bit-wise comparison of the prefixes is not meaningful, and
would lead to bogus results (except for the IPv4-mapped IPv6 case,
which this commit maintains).

Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoinet_diag: validate byte code to prevent oops in inet_diag_bc_run()
Neal Cardwell [Sat, 8 Dec 2012 19:43:22 +0000 (19:43 +0000)]
inet_diag: validate byte code to prevent oops in inet_diag_bc_run()

[ Upstream commit 405c005949e47b6e91359159c24753519ded0c67 ]

Add logic to validate INET_DIAG_BC_S_COND and INET_DIAG_BC_D_COND
operations.

Previously we did not validate the inet_diag_hostcond, address family,
address length, and prefix length. So a malicious user could make the
kernel read beyond the end of the bytecode array by claiming to have a
whole inet_diag_hostcond when the bytecode was not long enough to
contain a whole inet_diag_hostcond of the given address family. Or
they could make the kernel read up to about 27 bytes beyond the end of
a connection address by passing a prefix length that exceeded the
length of addresses of the given family.

Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoinet_diag: fix oops for IPv4 AF_INET6 TCP SYN-RECV state
Neal Cardwell [Sat, 8 Dec 2012 19:43:21 +0000 (19:43 +0000)]
inet_diag: fix oops for IPv4 AF_INET6 TCP SYN-RECV state

[ Upstream commit 1c95df85ca49640576de2f0a850925957b547b84 ]

Fix inet_diag to be aware of the fact that AF_INET6 TCP connections
instantiated for IPv4 traffic and in the SYN-RECV state were actually
created with inet_reqsk_alloc(), instead of inet6_reqsk_alloc(). This
means that for such connections inet6_rsk(req) returns a pointer to a
random spot in memory up to roughly 64KB beyond the end of the
request_sock.

With this bug, for a server using AF_INET6 TCP sockets and serving
IPv4 traffic, an inet_diag user like `ss state SYN-RECV` would lead to
inet_diag_fill_req() causing an oops or the export to user space of 16
bytes of kernel memory as a garbage IPv6 address, depending on where
the garbage inet6_rsk(req) pointed.

Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoipv4: ip_check_defrag must not modify skb before unsharing
Johannes Berg [Sun, 9 Dec 2012 23:41:06 +0000 (23:41 +0000)]
ipv4: ip_check_defrag must not modify skb before unsharing

[ Upstream commit 1bf3751ec90cc3174e01f0d701e8449ce163d113 ]

ip_check_defrag() might be called from af_packet within the
RX path where shared SKBs are used, so it must not modify
the input SKB before it has unshared it for defragmentation.
Use skb_copy_bits() to get the IP header and only pull in
everything later.

The same is true for the other caller in macvlan as it is
called from dev->rx_handler which can also get a shared SKB.

Reported-by: Eric Leblond <eric@regit.org>
Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoipv4: avoid passing NULL to inet_putpeer() in icmpv4_xrlim_allow()
Neal Cardwell [Sat, 24 Nov 2012 18:54:37 +0000 (18:54 +0000)]
ipv4: avoid passing NULL to inet_putpeer() in icmpv4_xrlim_allow()

[ Upstream commit e1a676424c290b1c8d757e3860170ac7ecd89af4 ]

inet_getpeer_v4() can return NULL under OOM conditions, and while
inet_peer_xrlim_allow() is OK with a NULL peer, inet_putpeer() will
crash.

This code path now uses the same idiom as the others from:
1d861aa4b3fb08822055345f480850205ffe6170 ("inet: Minimize use of
cached route inetpeer.").

Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoipv4: do not cache looped multicasts
Julian Anastasov [Thu, 22 Nov 2012 21:04:14 +0000 (23:04 +0200)]
ipv4: do not cache looped multicasts

[ Upstream commit 636174219b52b5a8bc51bc23bbcba97cd30a65e3 ]

Starting from 3.6 we cache output routes for
multicasts only when using route to 224/4. For local receivers
we can set RTCF_LOCAL flag depending on the membership but
in such case we use maddr and saddr which are not caching
keys as before. Additionally, we can not use same place to
cache routes that differ in RTCF_LOCAL flag value.

Fix it by caching only RTCF_MULTICAST entries
without RTCF_LOCAL (send-only, no loopback). As a side effect,
we avoid unneeded lookup for fnhe when not caching because
multicasts are not redirected and they do not learn PMTU.

Thanks to Maxime Bizon for showing the caching
problems in __mkroute_output for 3.6 kernels: different
RTCF_LOCAL flag in cache can lead to wrong ip_mc_output or
ip_output call and the visible problem is that traffic can
not reach local receivers via loopback.

Reported-by: Maxime Bizon <mbizon@freebox.fr>
Tested-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoirda: sir_dev: Fix copy/paste typo
Alexander Shiyan [Tue, 20 Nov 2012 09:59:11 +0000 (09:59 +0000)]
irda: sir_dev: Fix copy/paste typo

[ Upstream commit 2355a62bcbdcc4b567425bab036bfab6ade87eed ]

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoipv6: fix inet6_csk_update_pmtu() return value
Eric Dumazet [Tue, 20 Nov 2012 20:14:51 +0000 (15:14 -0500)]
ipv6: fix inet6_csk_update_pmtu() return value

[ Upstream commit b4dd006760d671337b62532277b0296bcee8dfd4 ]

In case of error, inet6_csk_update_pmtu() should consistently
return NULL.

Bug added in commit 35ad9b9cf7d8a
(ipv6: Add helper inet6_csk_update_pmtu().)

Reported-by: Lluís Batlle i Rossell <viric@viric.name>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>