make get_file() return its argument
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 27 Aug 2012 18:48:26 +0000 (14:48 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 27 Sep 2012 01:10:25 +0000 (21:10 -0400)
simplifies a bunch of callers...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
16 files changed:
arch/ia64/kernel/perfmon.c
drivers/base/dma-buf.c
drivers/staging/omapdrm/omap_gem.c
drivers/tty/tty_io.c
fs/autofs4/waitq.c
fs/fuse/dev.c
fs/nfsd/nfs4state.c
fs/proc/base.c
fs/select.c
include/linux/fs.h
mm/fremap.c
mm/mmap.c
mm/nommu.c
net/compat.c
net/core/scm.c
security/selinux/hooks.c

index 79826c13b8b6779f2f999f49550ec0735776f928..ff5d4e4c3733dac31ed83b26764545f509df8d82 100644 (file)
@@ -2306,7 +2306,7 @@ pfm_smpl_buffer_alloc(struct task_struct *task, struct file *filp, pfm_context_t
         * partially initialize the vma for the sampling buffer
         */
        vma->vm_mm           = mm;
-       vma->vm_file         = filp;
+       vma->vm_file         = get_file(filp);
        vma->vm_flags        = VM_READ| VM_MAYREAD |VM_RESERVED;
        vma->vm_page_prot    = PAGE_READONLY; /* XXX may need to change */
 
@@ -2345,8 +2345,6 @@ pfm_smpl_buffer_alloc(struct task_struct *task, struct file *filp, pfm_context_t
                goto error;
        }
 
-       get_file(filp);
-
        /*
         * now insert the vma in the vm list for the process, must be
         * done with mmap lock held
index c30f3e1d0efcc7bcb443051cab59930b06d72b74..460e22dee36dbb2389524f7287eb103b936e2c58 100644 (file)
@@ -460,8 +460,7 @@ int dma_buf_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma,
        if (vma->vm_file)
                fput(vma->vm_file);
 
-       vma->vm_file = dmabuf->file;
-       get_file(vma->vm_file);
+       vma->vm_file = get_file(dmabuf->file);
 
        vma->vm_pgoff = pgoff;
 
index 3a0d035a9e037265f17f4f9e6addb12d524c455c..2a6bb7f9ee68e7cfbab74b2127e9aa6d9e0d73bf 100644 (file)
@@ -566,9 +566,8 @@ int omap_gem_mmap_obj(struct drm_gem_object *obj,
                 * in particular in the case of mmap'd dmabufs)
                 */
                fput(vma->vm_file);
-               get_file(obj->filp);
                vma->vm_pgoff = 0;
-               vma->vm_file  = obj->filp;
+               vma->vm_file  = get_file(obj->filp);
 
                vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
        }
index 71d95cfbabecffbc9fcdbcbf743ef885fb34974f..c7561f29d894f7bc7aa90ef962119bb2050658b0 100644 (file)
@@ -1163,10 +1163,8 @@ ssize_t redirected_tty_write(struct file *file, const char __user *buf,
        struct file *p = NULL;
 
        spin_lock(&redirect_lock);
-       if (redirect) {
-               get_file(redirect);
-               p = redirect;
-       }
+       if (redirect)
+               p = get_file(redirect);
        spin_unlock(&redirect_lock);
 
        if (p) {
@@ -2246,8 +2244,7 @@ static int tioccons(struct file *file)
                spin_unlock(&redirect_lock);
                return -EBUSY;
        }
-       get_file(file);
-       redirect = file;
+       redirect = get_file(file);
        spin_unlock(&redirect_lock);
        return 0;
 }
index da8876d38a7b7e3a50101f02817cbbbc460cec20..dce436e595c19275cc7f84c79596b41605ab5c59 100644 (file)
@@ -175,8 +175,7 @@ static void autofs4_notify_daemon(struct autofs_sb_info *sbi,
                return;
        }
 
-       pipe = sbi->pipe;
-       get_file(pipe);
+       pipe = get_file(sbi->pipe);
 
        mutex_unlock(&sbi->wq_mutex);
 
index f4246cfc8d876db6ac39a6ef058b144c73d503af..8c23fa7a91e65cb46ad3907432e4418c7f96ad2d 100644 (file)
@@ -148,8 +148,7 @@ static struct fuse_req *get_reserved_req(struct fuse_conn *fc,
                if (ff->reserved_req) {
                        req = ff->reserved_req;
                        ff->reserved_req = NULL;
-                       get_file(file);
-                       req->stolen_file = file;
+                       req->stolen_file = get_file(file);
                }
                spin_unlock(&fc->lock);
        } while (!req);
index cc894eda385a48d0ecb98f2687ef566815648d75..48a1bad373342b10b689927faf002cf444043b22 100644 (file)
@@ -2837,8 +2837,7 @@ static int nfs4_setlease(struct nfs4_delegation *dp, int flag)
                return -ENOMEM;
        }
        fp->fi_lease = fl;
-       fp->fi_deleg_file = fl->fl_file;
-       get_file(fp->fi_deleg_file);
+       fp->fi_deleg_file = get_file(fl->fl_file);
        atomic_set(&fp->fi_delegees, 1);
        list_add(&dp->dl_perfile, &fp->fi_delegations);
        return 0;
index b55c3bb298e365e296f18eb76f898f793c037cb2..f1e8438d21b5090067db780c0949cf45af8200c9 100644 (file)
@@ -1979,8 +1979,7 @@ proc_map_files_readdir(struct file *filp, void *dirent, filldir_t filldir)
                                if (++pos <= filp->f_pos)
                                        continue;
 
-                               get_file(vma->vm_file);
-                               info.file = vma->vm_file;
+                               info.file = get_file(vma->vm_file);
                                info.len = snprintf(info.name,
                                                sizeof(info.name), "%lx-%lx",
                                                vma->vm_start, vma->vm_end);
index db14c781335e32c16d0d773c5ca7da53e5f771a4..ffdd16d6e691179a9b9081a0a607a6063f114abc 100644 (file)
@@ -220,8 +220,7 @@ static void __pollwait(struct file *filp, wait_queue_head_t *wait_address,
        struct poll_table_entry *entry = poll_get_entry(pwq);
        if (!entry)
                return;
-       get_file(filp);
-       entry->filp = filp;
+       entry->filp = get_file(filp);
        entry->wait_address = wait_address;
        entry->key = p->_key;
        init_waitqueue_func_entry(&entry->wait, pollwake);
index aa110476a95be0b1d479555346c560d45ecc0b20..de1db1c12080323c2edd4ee1a11c010d63816ba2 100644 (file)
@@ -1074,7 +1074,11 @@ struct file_handle {
        unsigned char f_handle[0];
 };
 
-#define get_file(x)    atomic_long_inc(&(x)->f_count)
+static inline struct file *get_file(struct file *f)
+{
+       atomic_long_inc(&f->f_count);
+       return f;
+}
 #define fput_atomic(x) atomic_long_add_unless(&(x)->f_count, -1, 1)
 #define file_count(x)  atomic_long_read(&(x)->f_count)
 
index 9ed4fd432467ee45a5310cd152fbba4399cbf722..048659c0c03d9abb429173217cf06454a471074f 100644 (file)
@@ -195,10 +195,9 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
                 */
                if (mapping_cap_account_dirty(mapping)) {
                        unsigned long addr;
-                       struct file *file = vma->vm_file;
+                       struct file *file = get_file(vma->vm_file);
 
                        flags &= MAP_NONBLOCK;
-                       get_file(file);
                        addr = mmap_region(file, start, size,
                                        flags, vma->vm_flags, pgoff);
                        fput(file);
index ae18a48e7e4e7944af308bbff226217ae7d1601e..872441e819141c2e93657b358fedf6204d62ac57 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1301,8 +1301,7 @@ munmap_back:
                                goto free_vma;
                        correct_wcount = 1;
                }
-               vma->vm_file = file;
-               get_file(file);
+               vma->vm_file = get_file(file);
                error = file->f_op->mmap(file, vma);
                if (error)
                        goto unmap_and_free_vma;
index d4b0c10872de59d8959262b1daac92d5d60eb80a..dee2ff89fd5816ab36893a26154314c6add2dce5 100644 (file)
@@ -1282,10 +1282,8 @@ unsigned long do_mmap_pgoff(struct file *file,
        vma->vm_pgoff = pgoff;
 
        if (file) {
-               region->vm_file = file;
-               get_file(file);
-               vma->vm_file = file;
-               get_file(file);
+               region->vm_file = get_file(file);
+               vma->vm_file = get_file(file);
                if (vm_flags & VM_EXECUTABLE) {
                        added_exe_file_vma(current->mm);
                        vma->vm_mm = current->mm;
index 74ed1d7a84a2ead7fe68e4c4e9c8ae1129490f3c..79ae884850015a99a1e43c4b2fc228670c3779b9 100644 (file)
@@ -301,8 +301,7 @@ void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm)
                        break;
                }
                /* Bump the usage count and install the file. */
-               get_file(fp[i]);
-               fd_install(new_fd, fp[i]);
+               fd_install(new_fd, get_file(fp[i]));
        }
 
        if (i > 0) {
index 040cebeed45b810cf9dd7d85c6ac2cbade98ee77..b0098d259233e3c48f098095435b7bbe7b68c5e3 100644 (file)
@@ -281,11 +281,10 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
                        break;
                }
                /* Bump the usage count and install the file. */
-               get_file(fp[i]);
                sock = sock_from_file(fp[i], &err);
                if (sock)
                        sock_update_netprioidx(sock->sk, current);
-               fd_install(new_fd, fp[i]);
+               fd_install(new_fd, get_file(fp[i]));
        }
 
        if (i > 0)
index 4dfbcea10eb79761d8839f50b84668e991c41137..651d8456611a87c4a8b77141574a81b992b80f53 100644 (file)
@@ -2135,8 +2135,7 @@ static inline void flush_unauthorized_files(const struct cred *cred,
        if (!IS_ERR(devnull)) {
                /* replace all the matching ones with this */
                do {
-                       get_file(devnull);
-                       replace_fd(n - 1, devnull, 0);
+                       replace_fd(n - 1, get_file(devnull), 0);
                } while ((n = iterate_fd(files, n, match_file, cred)) != 0);
                fput(devnull);
        } else {