OSDN Git Service

get rid of pipe->inode
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 21 Mar 2013 15:01:38 +0000 (11:01 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 9 Apr 2013 18:13:01 +0000 (14:13 -0400)
it's used only as a flag to distinguish normal pipes/FIFOs from the
internal per-task one used by file-to-file splice.  And pipe->files
would work just as well for that purpose...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/fuse/dev.c
fs/pipe.c
fs/splice.c
include/linux/pipe_fs_i.h

index 11dfa0c..9bfd1a3 100644 (file)
@@ -1319,7 +1319,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
                page_nr++;
                ret += buf->len;
 
-               if (pipe->inode)
+               if (pipe->files)
                        do_wakeup = 1;
        }
 
index e2fc5cc..39bdec0 100644 (file)
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -55,7 +55,7 @@ unsigned int pipe_min_size = PAGE_SIZE;
 
 static void pipe_lock_nested(struct pipe_inode_info *pipe, int subclass)
 {
-       if (pipe->inode)
+       if (pipe->files)
                mutex_lock_nested(&pipe->mutex, subclass);
 }
 
@@ -70,7 +70,7 @@ EXPORT_SYMBOL(pipe_lock);
 
 void pipe_unlock(struct pipe_inode_info *pipe)
 {
-       if (pipe->inode)
+       if (pipe->files)
                mutex_unlock(&pipe->mutex);
 }
 EXPORT_SYMBOL(pipe_unlock);
@@ -785,7 +785,6 @@ struct pipe_inode_info * alloc_pipe_info(struct inode *inode)
                if (pipe->bufs) {
                        init_waitqueue_head(&pipe->wait);
                        pipe->r_counter = pipe->w_counter = 1;
-                       pipe->inode = inode;
                        pipe->buffers = PIPE_DEF_BUFFERS;
                        mutex_init(&pipe->mutex);
                        return pipe;
index 7efc2f5..9f2a444 100644 (file)
@@ -218,7 +218,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
                        page_nr++;
                        ret += buf->len;
 
-                       if (pipe->inode)
+                       if (pipe->files)
                                do_wakeup = 1;
 
                        if (!--spd->nr_pages)
@@ -828,7 +828,7 @@ int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_desc *sd,
                        ops->release(pipe, buf);
                        pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
                        pipe->nrbufs--;
-                       if (pipe->inode)
+                       if (pipe->files)
                                sd->need_wakeup = true;
                }
 
index d803a85..ed8eeeb 100644 (file)
@@ -41,7 +41,6 @@ struct pipe_buffer {
  *     @w_counter: writer counter
  *     @fasync_readers: reader side fasync
  *     @fasync_writers: writer side fasync
- *     @inode: inode this pipe is attached to
  *     @bufs: the circular array of pipe buffers
  **/
 struct pipe_inode_info {
@@ -57,7 +56,6 @@ struct pipe_inode_info {
        struct page *tmp_page;
        struct fasync_struct *fasync_readers;
        struct fasync_struct *fasync_writers;
-       struct inode *inode;
        struct pipe_buffer *bufs;
 };