diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-22 13:52:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-22 13:52:56 -0400 |
commit | 092e0e7e520a1fca03e13c9f2d157432a8657ff2 (patch) | |
tree | 451897252c4c08c4b5a8ef535da156f1e817e80b /fs/read_write.c | |
parent | 79f14b7c56d3b3ba58f8b43d1f70b9b71477a800 (diff) | |
parent | 776c163b1b93c8dfa5edba885bc2bfbc2d228a5f (diff) |
Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl
* 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:
vfs: make no_llseek the default
vfs: don't use BKL in default_llseek
llseek: automatically add .llseek fop
libfs: use generic_file_llseek for simple_attr
mac80211: disallow seeks in minstrel debug code
lirc: make chardev nonseekable
viotape: use noop_llseek
raw: use explicit llseek file operations
ibmasmfs: use generic_file_llseek
spufs: use llseek in all file operations
arm/omap: use generic_file_llseek in iommu_debug
lkdtm: use generic_file_llseek in debugfs
net/wireless: use generic_file_llseek in debugfs
drm: use noop_llseek
Diffstat (limited to 'fs/read_write.c')
-rw-r--r-- | fs/read_write.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/read_write.c b/fs/read_write.c index 74e36586e4d3..e757ef26e4ce 100644 --- a/fs/read_write.c +++ b/fs/read_write.c | |||
@@ -124,7 +124,7 @@ loff_t default_llseek(struct file *file, loff_t offset, int origin) | |||
124 | { | 124 | { |
125 | loff_t retval; | 125 | loff_t retval; |
126 | 126 | ||
127 | lock_kernel(); | 127 | mutex_lock(&file->f_dentry->d_inode->i_mutex); |
128 | switch (origin) { | 128 | switch (origin) { |
129 | case SEEK_END: | 129 | case SEEK_END: |
130 | offset += i_size_read(file->f_path.dentry->d_inode); | 130 | offset += i_size_read(file->f_path.dentry->d_inode); |
@@ -145,7 +145,7 @@ loff_t default_llseek(struct file *file, loff_t offset, int origin) | |||
145 | retval = offset; | 145 | retval = offset; |
146 | } | 146 | } |
147 | out: | 147 | out: |
148 | unlock_kernel(); | 148 | mutex_unlock(&file->f_dentry->d_inode->i_mutex); |
149 | return retval; | 149 | return retval; |
150 | } | 150 | } |
151 | EXPORT_SYMBOL(default_llseek); | 151 | EXPORT_SYMBOL(default_llseek); |
@@ -156,7 +156,6 @@ loff_t vfs_llseek(struct file *file, loff_t offset, int origin) | |||
156 | 156 | ||
157 | fn = no_llseek; | 157 | fn = no_llseek; |
158 | if (file->f_mode & FMODE_LSEEK) { | 158 | if (file->f_mode & FMODE_LSEEK) { |
159 | fn = default_llseek; | ||
160 | if (file->f_op && file->f_op->llseek) | 159 | if (file->f_op && file->f_op->llseek) |
161 | fn = file->f_op->llseek; | 160 | fn = file->f_op->llseek; |
162 | } | 161 | } |