openwrt/staging/blogic.git
11 years agocifs: use posix_unblock_lock instead of locks_delete_block
Jeff Layton [Fri, 21 Jun 2013 12:58:10 +0000 (08:58 -0400)]
cifs: use posix_unblock_lock instead of locks_delete_block

commit 66189be74 (CIFS: Fix VFS lock usage for oplocked files) exported
the locks_delete_block symbol. There's already an exported helper
function that provides this capability however, so make cifs use that
instead and turn locks_delete_block back into a static function.

Note that if fl->fl_next == NULL then this lock has already been through
locks_delete_block(), so we should be OK to ignore an ENOENT error here
and simply not retry the lock.

Cc: Pavel Shilovsky <piastryyy@gmail.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Acked-by: J. Bruce Fields <bfields@fieldses.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agolocks: drop the unused filp argument to posix_unblock_lock
Jeff Layton [Fri, 21 Jun 2013 12:58:09 +0000 (08:58 -0400)]
locks: drop the unused filp argument to posix_unblock_lock

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoDon't pass inode to ->d_hash() and ->d_compare()
Linus Torvalds [Tue, 21 May 2013 22:22:44 +0000 (15:22 -0700)]
Don't pass inode to ->d_hash() and ->d_compare()

Instances either don't look at it at all (the majority of cases) or
only want it to find the superblock (which can be had as dentry->d_sb).
A few cases that want more are actually safe with dentry->d_inode -
the only precaution needed is the check that it hadn't been replaced with
NULL by rmdir() or by overwriting rename(), which case should be simply
treated as cache miss.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agominix: bug widening a binary "not" operation
Dan Carpenter [Wed, 19 Jun 2013 00:08:10 +0000 (10:08 +1000)]
minix: bug widening a binary "not" operation

"chunk_size" is an unsigned int and "pos" is an unsigned long.  The
"& ~(chunk_size-1)" operation clears the high 32 bits unintentionally.

The ALIGN() macro does the correct thing.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
11 years agosplice: lift checks from do_splice_from() into callers
Al Viro [Wed, 19 Jun 2013 11:41:54 +0000 (15:41 +0400)]
splice: lift checks from do_splice_from() into callers

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoconstify rw_verify_area()
Al Viro [Wed, 19 Jun 2013 11:26:04 +0000 (15:26 +0400)]
constify rw_verify_area()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agops3flash: switch to generic_file_llseek_size()
Al Viro [Mon, 17 Jun 2013 06:05:35 +0000 (10:05 +0400)]
ps3flash: switch to generic_file_llseek_size()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agowlcore: use *ppos, not file->f_pos
Al Viro [Mon, 17 Jun 2013 11:26:19 +0000 (15:26 +0400)]
wlcore: use *ppos, not file->f_pos

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agobfa: switch to fixed_size_llseek()
Al Viro [Mon, 17 Jun 2013 13:45:46 +0000 (17:45 +0400)]
bfa: switch to fixed_size_llseek()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agofnic: switch to fixed_size_llseek()
Al Viro [Mon, 17 Jun 2013 13:44:23 +0000 (17:44 +0400)]
fnic: switch to fixed_size_llseek()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agovc: switch to fixed_size_llseek()
Al Viro [Mon, 17 Jun 2013 11:31:22 +0000 (15:31 +0400)]
vc: switch to fixed_size_llseek()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoeisa_eeprom: switch to fixed_size_llseek()
Al Viro [Mon, 17 Jun 2013 11:27:47 +0000 (15:27 +0400)]
eisa_eeprom: switch to fixed_size_llseek()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agobna: switch to fixed_size_llseek()
Al Viro [Mon, 17 Jun 2013 11:23:54 +0000 (15:23 +0400)]
bna: switch to fixed_size_llseek()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agozorro: switch to fixed_size_llseek()
Al Viro [Sat, 22 Jun 2013 08:10:22 +0000 (12:10 +0400)]
zorro: switch to fixed_size_llseek()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agomtdchar: switch to fixed_size_llseek()
Al Viro [Sun, 16 Jun 2013 16:27:42 +0000 (20:27 +0400)]
mtdchar: switch to fixed_size_llseek()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agonew helper: fixed_size_llseek()
Al Viro [Sun, 16 Jun 2013 16:27:42 +0000 (20:27 +0400)]
new helper: fixed_size_llseek()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoecryptfs: switch ecryptfs_decode_and_decrypt_filename() from dentry to sb
Al Viro [Sun, 16 Jun 2013 16:05:38 +0000 (20:05 +0400)]
ecryptfs: switch ecryptfs_decode_and_decrypt_filename() from dentry to sb

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agofuse: another open-coded file_inode()
Al Viro [Sun, 16 Jun 2013 16:05:23 +0000 (20:05 +0400)]
fuse: another open-coded file_inode()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agobtrfs: more open-coded file_inode()
Al Viro [Sun, 16 Jun 2013 15:32:35 +0000 (19:32 +0400)]
btrfs: more open-coded file_inode()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agofanotify: quit wanking with FASYNC in ->release()
Al Viro [Sun, 16 Jun 2013 15:08:36 +0000 (19:08 +0400)]
fanotify: quit wanking with FASYNC in ->release()

... especially since there's no way to get that sucker
on the list fsnotify_fasync() works with - the only thing
adding to it is fsnotify_fasync() itself and it's never
called for fanotify files while they are opened.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agocomedi: quit wanking with FASYNC in ->release()
Al Viro [Sun, 16 Jun 2013 15:05:07 +0000 (19:05 +0400)]
comedi: quit wanking with FASYNC in ->release()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agomore open-coded file_inode() calls
Al Viro [Sun, 16 Jun 2013 13:25:12 +0000 (17:25 +0400)]
more open-coded file_inode() calls

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agokill find_inode_number()
Al Viro [Sat, 15 Jun 2013 07:37:47 +0000 (11:37 +0400)]
kill find_inode_number()

the only remaining caller (in ncpfs) is guaranteed to return 0 -
we only hit it if we'd just checked that there's no dentry with
such name.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agocoda: don't bother with find_inode_number()
Al Viro [Wed, 19 Jun 2013 09:21:03 +0000 (13:21 +0400)]
coda: don't bother with find_inode_number()

the fallback it's using for dcache misses is actually the
same value we would've used for inumber anyway.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoproc_fill_cache(): clean up, get rid of pointless find_inode_number() use
Al Viro [Sat, 15 Jun 2013 07:33:10 +0000 (11:33 +0400)]
proc_fill_cache(): clean up, get rid of pointless find_inode_number() use

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoproc_fill_cache(): just make instantiate_t return int
Al Viro [Sat, 15 Jun 2013 07:15:20 +0000 (11:15 +0400)]
proc_fill_cache(): just make instantiate_t return int

all instances always return ERR_PTR(-E...) or NULL, anyway

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoproc_pid_readdir(): stop wanking with proc_fill_cache() for /proc/self
Al Viro [Sat, 15 Jun 2013 06:45:10 +0000 (10:45 +0400)]
proc_pid_readdir(): stop wanking with proc_fill_cache() for /proc/self

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoproc_fill_cache(): kill pointless check
Al Viro [Sat, 15 Jun 2013 06:26:35 +0000 (10:26 +0400)]
proc_fill_cache(): kill pointless check

we'd just checked that child->d_inode is non-NULL, for fuck sake!

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoncpfs: don't bother with EBUSY on removal of busy directories
Al Viro [Sat, 15 Jun 2013 01:53:23 +0000 (05:53 +0400)]
ncpfs: don't bother with EBUSY on removal of busy directories

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agodon't call file_pos_write() if vfs_{read,write}{,v}() fails
Al Viro [Sat, 15 Jun 2013 01:49:36 +0000 (05:49 +0400)]
don't call file_pos_write() if vfs_{read,write}{,v}() fails

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoSELinux: Institute file_path_has_perm()
David Howells [Thu, 13 Jun 2013 22:37:55 +0000 (23:37 +0100)]
SELinux: Institute file_path_has_perm()

Create a file_path_has_perm() function that is like path_has_perm() but
instead takes a file struct that is the source of both the path and the
inode (rather than getting the inode from the dentry in the path).  This
is then used where appropriate.

This will be useful for situations like unionmount where it will be
possible to have an apparently-negative dentry (eg. a fallthrough) that is
open with the file struct pointing to an inode on the lower fs.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoReplace a bunch of file->dentry->d_inode refs with file_inode()
David Howells [Thu, 13 Jun 2013 22:37:49 +0000 (23:37 +0100)]
Replace a bunch of file->dentry->d_inode refs with file_inode()

Replace a bunch of file->dentry->d_inode refs with file_inode().

In __fput(), use file->f_inode instead so as not to be affected by any tricks
that file_inode() might grow.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoudf: provide ->tmpfile()
Al Viro [Wed, 12 Jun 2013 05:35:33 +0000 (09:35 +0400)]
udf: provide ->tmpfile()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoext3 ->tmpfile() support
Al Viro [Tue, 11 Jun 2013 08:52:02 +0000 (12:52 +0400)]
ext3 ->tmpfile() support

In this case we do need a bit more than usual, due to orphan
list handling.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoallow the temp files created by open() to be linked to
Al Viro [Tue, 11 Jun 2013 04:34:36 +0000 (08:34 +0400)]
allow the temp files created by open() to be linked to

O_TMPFILE | O_CREAT => linkat() with AT_SYMLINK_FOLLOW and /proc/self/fd/<n>
as oldpath (i.e. flink()) will create a link
O_TMPFILE | O_CREAT | O_EXCL => ENOENT on attempt to link those guys

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[O_TMPFILE] it's still short a few helpers, but infrastructure should be OK now...
Al Viro [Fri, 7 Jun 2013 05:20:27 +0000 (01:20 -0400)]
[O_TMPFILE] it's still short a few helpers, but infrastructure should be OK now...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoallow build_open_flags() to return an error
Al Viro [Tue, 11 Jun 2013 04:23:01 +0000 (08:23 +0400)]
allow build_open_flags() to return an error

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agolift file_*_write out of do_splice_direct()
Al Viro [Fri, 24 May 2013 00:10:34 +0000 (20:10 -0400)]
lift file_*_write out of do_splice_direct()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agolift file_*_write out of do_splice_from()
Al Viro [Fri, 24 May 2013 00:07:11 +0000 (20:07 -0400)]
lift file_*_write out of do_splice_from()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agodo_last(): fix missing checks for LAST_BIND case
Al Viro [Thu, 6 Jun 2013 13:12:33 +0000 (09:12 -0400)]
do_last(): fix missing checks for LAST_BIND case

/proc/self/cwd with O_CREAT should fail with EISDIR.  /proc/self/exe, OTOH,
should fail with ENOTDIR when opened with O_DIRECTORY.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agopcm_native: switch to fdget()/fdput()
Al Viro [Wed, 5 Jun 2013 18:09:55 +0000 (14:09 -0400)]
pcm_native: switch to fdget()/fdput()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] constify ->actor
Al Viro [Thu, 23 May 2013 02:22:04 +0000 (22:22 -0400)]
[readdir] constify ->actor

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] ->readdir() is gone
Al Viro [Thu, 23 May 2013 01:44:23 +0000 (21:44 -0400)]
[readdir] ->readdir() is gone

everything's converted to ->iterate()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert ecryptfs
Al Viro [Thu, 23 May 2013 01:23:40 +0000 (21:23 -0400)]
[readdir] convert ecryptfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert coda
Al Viro [Thu, 23 May 2013 01:15:30 +0000 (21:15 -0400)]
[readdir] convert coda

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert ocfs2
Al Viro [Thu, 23 May 2013 01:06:00 +0000 (21:06 -0400)]
[readdir] convert ocfs2

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert fatfs
Al Viro [Wed, 22 May 2013 22:37:16 +0000 (18:37 -0400)]
[readdir] convert fatfs

... pox upon the idiotic ioctls; life would be much easier without
those.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert xfs
Al Viro [Wed, 22 May 2013 21:07:56 +0000 (17:07 -0400)]
[readdir] convert xfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert btrfs
Al Viro [Wed, 22 May 2013 20:48:09 +0000 (16:48 -0400)]
[readdir] convert btrfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert hostfs
Al Viro [Wed, 22 May 2013 20:34:19 +0000 (16:34 -0400)]
[readdir] convert hostfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert afs
Al Viro [Wed, 22 May 2013 20:31:14 +0000 (16:31 -0400)]
[readdir] convert afs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert ncpfs
Al Viro [Wed, 22 May 2013 19:11:27 +0000 (15:11 -0400)]
[readdir] convert ncpfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert hfsplus
Al Viro [Wed, 22 May 2013 18:59:39 +0000 (14:59 -0400)]
[readdir] convert hfsplus

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert hfs
Al Viro [Wed, 22 May 2013 18:29:35 +0000 (14:29 -0400)]
[readdir] convert hfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert befs
Al Viro [Wed, 22 May 2013 17:44:05 +0000 (13:44 -0400)]
[readdir] convert befs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert cifs
Al Viro [Wed, 22 May 2013 20:17:25 +0000 (16:17 -0400)]
[readdir] convert cifs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert freevxfs
Al Viro [Sat, 18 May 2013 07:15:00 +0000 (03:15 -0400)]
[readdir] convert freevxfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert fuse
Al Viro [Sat, 18 May 2013 07:03:58 +0000 (03:03 -0400)]
[readdir] convert fuse

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert hpfs
Al Viro [Sat, 18 May 2013 06:58:57 +0000 (02:58 -0400)]
[readdir] convert hpfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoreiserfs: switch reiserfs_readdir_dentry to inode
Al Viro [Sat, 18 May 2013 02:58:58 +0000 (22:58 -0400)]
reiserfs: switch reiserfs_readdir_dentry to inode

... and clean the callers up a bit

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoreiserfs: is_privroot_deh() needs only directory inode, actually
Al Viro [Sat, 18 May 2013 02:45:29 +0000 (22:45 -0400)]
reiserfs: is_privroot_deh() needs only directory inode, actually

... and that - only to get the superblock.  Privroot is a directory
and we don't allow hardlinks to those...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert reiserfs
Al Viro [Sat, 18 May 2013 02:42:17 +0000 (22:42 -0400)]
[readdir] convert reiserfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert ntfs
Al Viro [Sat, 18 May 2013 01:22:31 +0000 (21:22 -0400)]
[readdir] convert ntfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert isofs
Al Viro [Sat, 18 May 2013 01:11:59 +0000 (21:11 -0400)]
[readdir] convert isofs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert jffs2
Al Viro [Fri, 17 May 2013 22:08:49 +0000 (18:08 -0400)]
[readdir] convert jffs2

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert f2fs
Al Viro [Fri, 17 May 2013 22:02:17 +0000 (18:02 -0400)]
[readdir] convert f2fs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert 9p
Al Viro [Fri, 17 May 2013 21:51:41 +0000 (17:51 -0400)]
[readdir] convert 9p

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert affs
Al Viro [Fri, 17 May 2013 21:44:42 +0000 (17:44 -0400)]
[readdir] convert affs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert adfs
Al Viro [Fri, 17 May 2013 21:30:10 +0000 (17:30 -0400)]
[readdir] convert adfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert logfs
Al Viro [Fri, 17 May 2013 21:06:34 +0000 (17:06 -0400)]
[readdir] convert logfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert jfs
Al Viro [Fri, 17 May 2013 21:00:34 +0000 (17:00 -0400)]
[readdir] convert jfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert ceph
Al Viro [Fri, 17 May 2013 20:52:26 +0000 (16:52 -0400)]
[readdir] convert ceph

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert nfs
Al Viro [Fri, 17 May 2013 20:34:50 +0000 (16:34 -0400)]
[readdir] convert nfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert ext4
Al Viro [Fri, 17 May 2013 20:08:53 +0000 (16:08 -0400)]
[readdir] convert ext4

and trim the living hell out bogosities in inline dir case

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert qnx6
Al Viro [Fri, 17 May 2013 19:32:10 +0000 (15:32 -0400)]
[readdir] convert qnx6

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert qnx4
Al Viro [Fri, 17 May 2013 19:17:59 +0000 (15:17 -0400)]
[readdir] convert qnx4

... and use strnlen() instead of strlen() - it's done on untrusted data,
after all.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert omfs
Al Viro [Fri, 17 May 2013 19:05:25 +0000 (15:05 -0400)]
[readdir] convert omfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert nilfs2
Al Viro [Thu, 16 May 2013 18:36:14 +0000 (14:36 -0400)]
[readdir] convert nilfs2

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert sysfs
Al Viro [Thu, 16 May 2013 18:31:02 +0000 (14:31 -0400)]
[readdir] convert sysfs

get rid of the kludges in sysfs_readdir()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert gfs2
Al Viro [Thu, 16 May 2013 18:14:48 +0000 (14:14 -0400)]
[readdir] convert gfs2

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert exofs
Al Viro [Thu, 16 May 2013 17:48:17 +0000 (13:48 -0400)]
[readdir] convert exofs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert bfs
Al Viro [Thu, 16 May 2013 17:41:48 +0000 (13:41 -0400)]
[readdir] convert bfs

... and get rid of that ridiculous mutex in bfs_readdir()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert procfs
Al Viro [Thu, 16 May 2013 16:07:31 +0000 (12:07 -0400)]
[readdir] convert procfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert openpromfs
Al Viro [Thu, 16 May 2013 05:52:12 +0000 (01:52 -0400)]
[readdir] convert openpromfs

what the hell is op_mutex for, BTW?

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert efs
Al Viro [Thu, 16 May 2013 05:41:10 +0000 (01:41 -0400)]
[readdir] convert efs

* sanity checks belong before risky operation, not after it
* don't quit as soon as we'd found an entry

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert configfs
Al Viro [Thu, 16 May 2013 05:28:34 +0000 (01:28 -0400)]
[readdir] convert configfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert romfs
Al Viro [Thu, 16 May 2013 05:22:00 +0000 (01:22 -0400)]
[readdir] convert romfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert squashfs
Al Viro [Thu, 16 May 2013 05:17:58 +0000 (01:17 -0400)]
[readdir] convert squashfs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert ubifs
Al Viro [Thu, 16 May 2013 05:14:46 +0000 (01:14 -0400)]
[readdir] convert ubifs

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert udf
Al Viro [Thu, 16 May 2013 05:09:37 +0000 (01:09 -0400)]
[readdir] convert udf

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] convert ext3
Al Viro [Thu, 16 May 2013 01:02:48 +0000 (21:02 -0400)]
[readdir] convert ext3

new helper: dir_relax(inode).  Call when you are in location that will
_not_ be invalidated by directory modifications (block boundary, in case
of ext*).  Returns whether the directory has survived (dropping i_mutex
allows rmdir to kill the sucker; if it returns false to us, ->iterate()
is obviously done)

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] switch dcache_readdir() users to ->iterate()
Al Viro [Thu, 16 May 2013 00:23:06 +0000 (20:23 -0400)]
[readdir] switch dcache_readdir() users to ->iterate()

new helpers - dir_emit_dot(file, ctx, dentry), dir_emit_dotdot(file, ctx),
dir_emit_dots(file, ctx).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] simple local unixlike: switch to ->iterate()
Al Viro [Wed, 15 May 2013 22:51:49 +0000 (18:51 -0400)]
[readdir] simple local unixlike: switch to ->iterate()

ext2, ufs, minix, sysv

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] introduce ->iterate(), ctx->pos, dir_emit()
Al Viro [Wed, 15 May 2013 22:49:12 +0000 (18:49 -0400)]
[readdir] introduce ->iterate(), ctx->pos, dir_emit()

New method - ->iterate(file, ctx).  That's the replacement for ->readdir();
it takes callback from ctx->actor, uses ctx->pos instead of file->f_pos and
calls dir_emit(ctx, ...) instead of filldir(data, ...).  It does *not*
update file->f_pos (or look at it, for that matter); iterate_dir() does the
update.

Note that dir_emit() takes the offset from ctx->pos (and eventually
filldir_t will lose that argument).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years ago[readdir] introduce iterate_dir() and dir_context
Al Viro [Wed, 15 May 2013 17:52:59 +0000 (13:52 -0400)]
[readdir] introduce iterate_dir() and dir_context

iterate_dir(): new helper, replacing vfs_readdir().

struct dir_context: contains the readdir callback (and will get more stuff
in it), embedded into whatever data that callback wants to deal with;
eventually, we'll be passing it to ->readdir() replacement instead of
(data,filldir) pair.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agomove linux/loop.h to drivers/block
Al Viro [Sun, 12 May 2013 14:14:07 +0000 (10:14 -0400)]
move linux/loop.h to drivers/block

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agocompat.c: LOOP_CLR_FD is taken care of in loop.c itself...
Al Viro [Sun, 12 May 2013 14:12:11 +0000 (10:12 -0400)]
compat.c: LOOP_CLR_FD is taken care of in loop.c itself...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agopxa3xx: VM_IO is set by io_remap_pfn_range()
Al Viro [Sat, 11 May 2013 16:39:26 +0000 (12:39 -0400)]
pxa3xx: VM_IO is set by io_remap_pfn_range()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoau1100fb: VM_IO is set by io_remap_pfn_range()
Al Viro [Sat, 11 May 2013 16:38:38 +0000 (12:38 -0400)]
au1100fb: VM_IO is set by io_remap_pfn_range()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
11 years agoau1200fb: io_remap_pfn_range() sets VM_IO
Al Viro [Sat, 11 May 2013 16:37:38 +0000 (12:37 -0400)]
au1200fb: io_remap_pfn_range() sets VM_IO

... and single return is quite sufficient to get out of function, TYVM

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>