projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
don't use 'localversion*' files twice
[powerpc.git]
/
fs
/
pipe.c
diff --git
a/fs/pipe.c
b/fs/pipe.c
index
f8b6bdc
..
68090e8
100644
(file)
--- a/
fs/pipe.c
+++ b/
fs/pipe.c
@@
-207,7
+207,7
@@
int generic_pipe_buf_pin(struct pipe_inode_info *info, struct pipe_buffer *buf)
return 0;
}
return 0;
}
-static struct pipe_buf_operations anon_pipe_buf_ops = {
+static
const
struct pipe_buf_operations anon_pipe_buf_ops = {
.can_merge = 1,
.map = generic_pipe_buf_map,
.unmap = generic_pipe_buf_unmap,
.can_merge = 1,
.map = generic_pipe_buf_map,
.unmap = generic_pipe_buf_unmap,
@@
-243,7
+243,7
@@
pipe_read(struct kiocb *iocb, const struct iovec *_iov,
if (bufs) {
int curbuf = pipe->curbuf;
struct pipe_buffer *buf = pipe->bufs + curbuf;
if (bufs) {
int curbuf = pipe->curbuf;
struct pipe_buffer *buf = pipe->bufs + curbuf;
- struct pipe_buf_operations *ops = buf->ops;
+
const
struct pipe_buf_operations *ops = buf->ops;
void *addr;
size_t chars = buf->len;
int error, atomic;
void *addr;
size_t chars = buf->len;
int error, atomic;
@@
-365,7
+365,7
@@
pipe_write(struct kiocb *iocb, const struct iovec *_iov,
int lastbuf = (pipe->curbuf + pipe->nrbufs - 1) &
(PIPE_BUFFERS-1);
struct pipe_buffer *buf = pipe->bufs + lastbuf;
int lastbuf = (pipe->curbuf + pipe->nrbufs - 1) &
(PIPE_BUFFERS-1);
struct pipe_buffer *buf = pipe->bufs + lastbuf;
- struct pipe_buf_operations *ops = buf->ops;
+
const
struct pipe_buf_operations *ops = buf->ops;
int offset = buf->offset + buf->len;
if (ops->can_merge && offset + chars <= PAGE_SIZE) {
int offset = buf->offset + buf->len;
if (ops->can_merge && offset + chars <= PAGE_SIZE) {
@@
-756,7
+756,7
@@
const struct file_operations rdwr_fifo_fops = {
.fasync = pipe_rdwr_fasync,
};
.fasync = pipe_rdwr_fasync,
};
-static struct file_operations read_pipe_fops = {
+static
const
struct file_operations read_pipe_fops = {
.llseek = no_llseek,
.read = do_sync_read,
.aio_read = pipe_read,
.llseek = no_llseek,
.read = do_sync_read,
.aio_read = pipe_read,
@@
-768,7
+768,7
@@
static struct file_operations read_pipe_fops = {
.fasync = pipe_read_fasync,
};
.fasync = pipe_read_fasync,
};
-static struct file_operations write_pipe_fops = {
+static
const
struct file_operations write_pipe_fops = {
.llseek = no_llseek,
.read = bad_pipe_r,
.write = do_sync_write,
.llseek = no_llseek,
.read = bad_pipe_r,
.write = do_sync_write,
@@
-780,7
+780,7
@@
static struct file_operations write_pipe_fops = {
.fasync = pipe_write_fasync,
};
.fasync = pipe_write_fasync,
};
-static struct file_operations rdwr_pipe_fops = {
+static
const
struct file_operations rdwr_pipe_fops = {
.llseek = no_llseek,
.read = do_sync_read,
.aio_read = pipe_read,
.llseek = no_llseek,
.read = do_sync_read,
.aio_read = pipe_read,
@@
-935,8
+935,9
@@
struct file *create_write_pipe(void)
void free_write_pipe(struct file *f)
{
void free_write_pipe(struct file *f)
{
-
mntput(f->f_path.mnt
);
+
free_pipe_info(f->f_dentry->d_inode
);
dput(f->f_path.dentry);
dput(f->f_path.dentry);
+ mntput(f->f_path.mnt);
put_filp(f);
}
put_filp(f);
}
@@
-994,6
+995,8
@@
int do_pipe(int *fd)
err_fdr:
put_unused_fd(fdr);
err_read_pipe:
err_fdr:
put_unused_fd(fdr);
err_read_pipe:
+ dput(fr->f_dentry);
+ mntput(fr->f_vfsmnt);
put_filp(fr);
err_write_pipe:
free_write_pipe(fw);
put_filp(fr);
err_write_pipe:
free_write_pipe(fw);