aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2014-03-14 10:06:32 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2014-04-01 23:19:12 -0400
commit4597e695b8baa3e2620da89c7593be70cf20566b (patch)
treef8e8cf56e4b154e8bef5e6ae2aa802526ccd1668 /fs
parentdon't bother with {get,put}_write_access() on non-regular files (diff)
downloadlinux-dev-4597e695b8baa3e2620da89c7593be70cf20566b.tar.xz
linux-dev-4597e695b8baa3e2620da89c7593be70cf20566b.zip
get rid of DEBUG_WRITECOUNT
it only makes control flow in __fput() and friends more convoluted. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r--fs/file_table.c5
-rw-r--r--fs/open.c8
2 files changed, 0 insertions, 13 deletions
diff --git a/fs/file_table.c b/fs/file_table.c
index 79ecae62209a..ee20658a0647 100644
--- a/fs/file_table.c
+++ b/fs/file_table.c
@@ -52,7 +52,6 @@ static void file_free_rcu(struct rcu_head *head)
static inline void file_free(struct file *f)
{
percpu_counter_dec(&nr_files);
- file_check_state(f);
call_rcu(&f->f_u.fu_rcuhead, file_free_rcu);
}
@@ -186,7 +185,6 @@ struct file *alloc_file(struct path *path, fmode_t mode,
* that we can do debugging checks at __fput()
*/
if ((mode & FMODE_WRITE) && !special_file(path->dentry->d_inode->i_mode)) {
- file_take_write(file);
WARN_ON(mnt_clone_write(path->mnt));
}
if ((mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ)
@@ -213,10 +211,7 @@ static void drop_file_write_access(struct file *file)
return;
put_write_access(inode);
- if (file_check_writeable(file) != 0)
- return;
__mnt_drop_write(mnt);
- file_release_write(file);
}
/* the real guts of fput() - releasing the last reference to file
diff --git a/fs/open.c b/fs/open.c
index 2ed7325f713e..8d0b6adfe7b8 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -683,7 +683,6 @@ static int do_dentry_open(struct file *f,
error = __get_file_write_access(inode, f->f_path.mnt);
if (error)
goto cleanup_file;
- file_take_write(f);
}
f->f_mapping = inode->i_mapping;
@@ -731,14 +730,7 @@ cleanup_all:
fops_put(f->f_op);
if (f->f_mode & FMODE_WRITE) {
if (!special_file(inode->i_mode)) {
- /*
- * We don't consider this a real
- * mnt_want/drop_write() pair
- * because it all happenend right
- * here, so just reset the state.
- */
put_write_access(inode);
- file_reset_write(f);
__mnt_drop_write(f->f_path.mnt);
}
}