]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - fs/file_table.c
don't bother with {get,put}_write_access() on non-regular files
[mirror_ubuntu-bionic-kernel.git] / fs / file_table.c
index 5fff9030be34df26aff0c0ed56081aee1306bf02..79ecae62209a08462fcf2d21a2cfda6bbf70ce46 100644 (file)
@@ -135,6 +135,7 @@ struct file *get_empty_filp(void)
        atomic_long_set(&f->f_count, 1);
        rwlock_init(&f->f_owner.lock);
        spin_lock_init(&f->f_lock);
+       mutex_init(&f->f_pos_lock);
        eventpoll_init_file(f);
        /* f->f_version: 0 */
        return f;
@@ -208,10 +209,10 @@ static void drop_file_write_access(struct file *file)
        struct dentry *dentry = file->f_path.dentry;
        struct inode *inode = dentry->d_inode;
 
-       put_write_access(inode);
-
        if (special_file(inode->i_mode))
                return;
+
+       put_write_access(inode);
        if (file_check_writeable(file) != 0)
                return;
        __mnt_drop_write(mnt);