]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/pipe.c
[PATCH] ext2: prevent div-by-zero on corrupted fs
[karo-tx-linux.git] / fs / pipe.c
index 3941a7f78b5d5d778ca72c47d17ba7e18fb77e25..20352573e025f0fe2574b6ffb300c44fc3605fa9 100644 (file)
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -184,8 +184,8 @@ void generic_pipe_buf_unmap(struct pipe_inode_info *pipe,
                kunmap(buf->page);
 }
 
-static int anon_pipe_buf_steal(struct pipe_inode_info *pipe,
-                              struct pipe_buffer *buf)
+int generic_pipe_buf_steal(struct pipe_inode_info *pipe,
+                          struct pipe_buffer *buf)
 {
        struct page *page = buf->page;
 
@@ -213,7 +213,7 @@ static struct pipe_buf_operations anon_pipe_buf_ops = {
        .unmap = generic_pipe_buf_unmap,
        .pin = generic_pipe_buf_pin,
        .release = anon_pipe_buf_release,
-       .steal = anon_pipe_buf_steal,
+       .steal = generic_pipe_buf_steal,
        .get = generic_pipe_buf_get,
 };
 
@@ -979,12 +979,11 @@ no_files:
  * any operations on the root directory. However, we need a non-trivial
  * d_name - pipe: will go nicely and kill the special-casing in procfs.
  */
-
-static struct super_block *
-pipefs_get_sb(struct file_system_type *fs_type, int flags,
-             const char *dev_name, void *data)
+static int pipefs_get_sb(struct file_system_type *fs_type,
+                        int flags, const char *dev_name, void *data,
+                        struct vfsmount *mnt)
 {
-       return get_sb_pseudo(fs_type, "pipe:", NULL, PIPEFS_MAGIC);
+       return get_sb_pseudo(fs_type, "pipe:", NULL, PIPEFS_MAGIC, mnt);
 }
 
 static struct file_system_type pipe_fs_type = {