diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-03 12:10:19 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-03 12:10:19 -0400 |
commit | 790eac5640abf7a57fa3a644386df330e18c11b0 (patch) | |
tree | 08de20bde44f59e51b91ff473a71047c2957e8c9 /arch | |
parent | 0b0585c3e192967cb2ef0ac0816eb8a8c8d99840 (diff) | |
parent | 48bde8d3620f5f3c6ae9ff599eb404055ae51664 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull second set of VFS changes from Al Viro:
"Assorted f_pos race fixes, making do_splice_direct() safe to call with
i_mutex on parent, O_TMPFILE support, Jeff's locks.c series,
->d_hash/->d_compare calling conventions changes from Linus, misc
stuff all over the place."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (63 commits)
Document ->tmpfile()
ext4: ->tmpfile() support
vfs: export lseek_execute() to modules
lseek_execute() doesn't need an inode passed to it
block_dev: switch to fixed_size_llseek()
cpqphp_sysfs: switch to fixed_size_llseek()
tile-srom: switch to fixed_size_llseek()
proc_powerpc: switch to fixed_size_llseek()
ubi/cdev: switch to fixed_size_llseek()
pci/proc: switch to fixed_size_llseek()
isapnp: switch to fixed_size_llseek()
lpfc: switch to fixed_size_llseek()
locks: give the blocked_hash its own spinlock
locks: add a new "lm_owner_key" lock operation
locks: turn the blocked_list into a hashtable
locks: convert fl_link to a hlist_node
locks: avoid taking global lock if possible when waking up blocked waiters
locks: protect most of the file_lock handling with i_lock
locks: encapsulate the fl_link list handling
locks: make "added" in __posix_lock_file a bool
...
Diffstat (limited to 'arch')
-rw-r--r-- | arch/alpha/include/uapi/asm/fcntl.h | 1 | ||||
-rw-r--r-- | arch/arc/kernel/troubleshoot.c | 2 | ||||
-rw-r--r-- | arch/parisc/include/uapi/asm/fcntl.h | 1 | ||||
-rw-r--r-- | arch/powerpc/kernel/proc_powerpc.c | 20 | ||||
-rw-r--r-- | arch/sparc/include/uapi/asm/fcntl.h | 1 |
5 files changed, 6 insertions, 19 deletions
diff --git a/arch/alpha/include/uapi/asm/fcntl.h b/arch/alpha/include/uapi/asm/fcntl.h index 6d9e805f18a7..dfdadb0b4bef 100644 --- a/arch/alpha/include/uapi/asm/fcntl.h +++ b/arch/alpha/include/uapi/asm/fcntl.h | |||
@@ -32,6 +32,7 @@ | |||
32 | #define O_SYNC (__O_SYNC|O_DSYNC) | 32 | #define O_SYNC (__O_SYNC|O_DSYNC) |
33 | 33 | ||
34 | #define O_PATH 040000000 | 34 | #define O_PATH 040000000 |
35 | #define O_TMPFILE 0100000000 | ||
35 | 36 | ||
36 | #define F_GETLK 7 | 37 | #define F_GETLK 7 |
37 | #define F_SETLK 8 | 38 | #define F_SETLK 8 |
diff --git a/arch/arc/kernel/troubleshoot.c b/arch/arc/kernel/troubleshoot.c index 11c301b81c92..a03528ecd276 100644 --- a/arch/arc/kernel/troubleshoot.c +++ b/arch/arc/kernel/troubleshoot.c | |||
@@ -101,7 +101,7 @@ static void show_faulting_vma(unsigned long address, char *buf) | |||
101 | if (file) { | 101 | if (file) { |
102 | struct path *path = &file->f_path; | 102 | struct path *path = &file->f_path; |
103 | nm = d_path(path, buf, PAGE_SIZE - 1); | 103 | nm = d_path(path, buf, PAGE_SIZE - 1); |
104 | inode = vma->vm_file->f_path.dentry->d_inode; | 104 | inode = file_inode(vma->vm_file); |
105 | dev = inode->i_sb->s_dev; | 105 | dev = inode->i_sb->s_dev; |
106 | ino = inode->i_ino; | 106 | ino = inode->i_ino; |
107 | } | 107 | } |
diff --git a/arch/parisc/include/uapi/asm/fcntl.h b/arch/parisc/include/uapi/asm/fcntl.h index 0304b92ccfea..cc61c475f277 100644 --- a/arch/parisc/include/uapi/asm/fcntl.h +++ b/arch/parisc/include/uapi/asm/fcntl.h | |||
@@ -20,6 +20,7 @@ | |||
20 | #define O_INVISIBLE 004000000 /* invisible I/O, for DMAPI/XDSM */ | 20 | #define O_INVISIBLE 004000000 /* invisible I/O, for DMAPI/XDSM */ |
21 | 21 | ||
22 | #define O_PATH 020000000 | 22 | #define O_PATH 020000000 |
23 | #define O_TMPFILE 040000000 | ||
23 | 24 | ||
24 | #define F_GETLK64 8 | 25 | #define F_GETLK64 8 |
25 | #define F_SETLK64 9 | 26 | #define F_SETLK64 9 |
diff --git a/arch/powerpc/kernel/proc_powerpc.c b/arch/powerpc/kernel/proc_powerpc.c index feb8580fdc84..c30612aad68e 100644 --- a/arch/powerpc/kernel/proc_powerpc.c +++ b/arch/powerpc/kernel/proc_powerpc.c | |||
@@ -29,25 +29,9 @@ | |||
29 | 29 | ||
30 | #ifdef CONFIG_PPC64 | 30 | #ifdef CONFIG_PPC64 |
31 | 31 | ||
32 | static loff_t page_map_seek( struct file *file, loff_t off, int whence) | 32 | static loff_t page_map_seek(struct file *file, loff_t off, int whence) |
33 | { | 33 | { |
34 | loff_t new; | 34 | return fixed_size_llseek(file, off, whence, PAGE_SIZE); |
35 | switch(whence) { | ||
36 | case 0: | ||
37 | new = off; | ||
38 | break; | ||
39 | case 1: | ||
40 | new = file->f_pos + off; | ||
41 | break; | ||
42 | case 2: | ||
43 | new = PAGE_SIZE + off; | ||
44 | break; | ||
45 | default: | ||
46 | return -EINVAL; | ||
47 | } | ||
48 | if ( new < 0 || new > PAGE_SIZE ) | ||
49 | return -EINVAL; | ||
50 | return (file->f_pos = new); | ||
51 | } | 35 | } |
52 | 36 | ||
53 | static ssize_t page_map_read( struct file *file, char __user *buf, size_t nbytes, | 37 | static ssize_t page_map_read( struct file *file, char __user *buf, size_t nbytes, |
diff --git a/arch/sparc/include/uapi/asm/fcntl.h b/arch/sparc/include/uapi/asm/fcntl.h index d0b83f66f356..d73e5e008b0d 100644 --- a/arch/sparc/include/uapi/asm/fcntl.h +++ b/arch/sparc/include/uapi/asm/fcntl.h | |||
@@ -35,6 +35,7 @@ | |||
35 | #define O_SYNC (__O_SYNC|O_DSYNC) | 35 | #define O_SYNC (__O_SYNC|O_DSYNC) |
36 | 36 | ||
37 | #define O_PATH 0x1000000 | 37 | #define O_PATH 0x1000000 |
38 | #define O_TMPFILE 0x2000000 | ||
38 | 39 | ||
39 | #define F_GETOWN 5 /* for sockets. */ | 40 | #define F_GETOWN 5 /* for sockets. */ |
40 | #define F_SETOWN 6 /* for sockets. */ | 41 | #define F_SETOWN 6 /* for sockets. */ |