diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-11-28 19:27:19 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-11-28 19:27:19 -0500 |
commit | 72083646528d4887b920deb71b37e09bc7d227bb (patch) | |
tree | 84a650b474530ae2d2d72614899532757d4bb961 | |
parent | c66fb347946ebdd5b10908866ecc9fa05ee2cf3d (diff) |
Un-inline get_pipe_info() helper function
This avoids some include-file hell, and the function isn't really
important enough to be inlined anyway.
Reported-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/pipe.c | 12 | ||||
-rw-r--r-- | include/linux/pipe_fs_i.h | 13 |
2 files changed, 13 insertions, 12 deletions
@@ -1199,6 +1199,18 @@ int pipe_proc_fn(struct ctl_table *table, int write, void __user *buf, | |||
1199 | return ret; | 1199 | return ret; |
1200 | } | 1200 | } |
1201 | 1201 | ||
1202 | /* | ||
1203 | * After the inode slimming patch, i_pipe/i_bdev/i_cdev share the same | ||
1204 | * location, so checking ->i_pipe is not enough to verify that this is a | ||
1205 | * pipe. | ||
1206 | */ | ||
1207 | struct pipe_inode_info *get_pipe_info(struct file *file) | ||
1208 | { | ||
1209 | struct inode *i = file->f_path.dentry->d_inode; | ||
1210 | |||
1211 | return S_ISFIFO(i->i_mode) ? i->i_pipe : NULL; | ||
1212 | } | ||
1213 | |||
1202 | long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg) | 1214 | long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg) |
1203 | { | 1215 | { |
1204 | struct pipe_inode_info *pipe; | 1216 | struct pipe_inode_info *pipe; |
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index 3c5ac3147428..bb27d7ec2fb9 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
@@ -160,17 +160,6 @@ void generic_pipe_buf_release(struct pipe_inode_info *, struct pipe_buffer *); | |||
160 | 160 | ||
161 | /* for F_SETPIPE_SZ and F_GETPIPE_SZ */ | 161 | /* for F_SETPIPE_SZ and F_GETPIPE_SZ */ |
162 | long pipe_fcntl(struct file *, unsigned int, unsigned long arg); | 162 | long pipe_fcntl(struct file *, unsigned int, unsigned long arg); |
163 | 163 | struct pipe_inode_info *get_pipe_info(struct file *file); | |
164 | /* | ||
165 | * After the inode slimming patch, i_pipe/i_bdev/i_cdev share the same | ||
166 | * location, so checking ->i_pipe is not enough to verify that this is a | ||
167 | * pipe. | ||
168 | */ | ||
169 | static inline struct pipe_inode_info *get_pipe_info(struct file *file) | ||
170 | { | ||
171 | struct inode *i = file->f_path.dentry->d_inode; | ||
172 | |||
173 | return S_ISFIFO(i->i_mode) ? i->i_pipe : NULL; | ||
174 | } | ||
175 | 164 | ||
176 | #endif | 165 | #endif |