]> git.pld-linux.org Git - packages/kernel.git/blobdiff - ovl01-vfs-add-i_op-dentry_open.patch
- partial up to 3.12(rc6); builds withtout vserver, imq and apparmor updates
[packages/kernel.git] / ovl01-vfs-add-i_op-dentry_open.patch
index 650822bece0af59174c34a42b12c52de55075272..022b944ac3433481d3e04af7fe4e6c2da17f9507 100644 (file)
@@ -16,39 +16,35 @@ Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
  include/linux/fs.h                |    2 ++
  5 files changed, 38 insertions(+), 5 deletions(-)
 
-Index: linux-3.6-rc7-master/Documentation/filesystems/Locking
-===================================================================
---- linux-3.6-rc7-master.orig/Documentation/filesystems/Locking        2012-09-28 13:36:40.000000000 +0200
-+++ linux-3.6-rc7-master/Documentation/filesystems/Locking     2012-09-28 13:36:47.000000000 +0200
-@@ -64,6 +64,7 @@ d_manage:    no              no              yes (ref-walk)  maybe
-       int (*atomic_open)(struct inode *, struct dentry *,
+--- a/Documentation/filesystems/Locking
++++ b/Documentation/filesystems/Locking
+@@ -66,6 +66,7 @@ d_manage:    no              no              yes (ref-walk)  maybe
                                struct file *, unsigned open_flag,
                                umode_t create_mode, int *opened);
+       int (*tmpfile) (struct inode *, struct dentry *, umode_t);
 +      int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
  
  locking rules:
        all may block
-@@ -92,6 +93,7 @@ removexattr: yes
- fiemap:               no
+@@ -93,6 +94,7 @@ removexattr: yes
  update_time:  no
  atomic_open:  yes
+ tmpfile:      no
 +dentry_open:  no
  
        Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
  victim.
-Index: linux-3.6-rc7-master/Documentation/filesystems/vfs.txt
-===================================================================
---- linux-3.6-rc7-master.orig/Documentation/filesystems/vfs.txt        2012-09-28 13:36:40.000000000 +0200
-+++ linux-3.6-rc7-master/Documentation/filesystems/vfs.txt     2012-09-28 13:36:47.000000000 +0200
-@@ -363,6 +363,7 @@ struct inode_operations {
-       int (*atomic_open)(struct inode *, struct dentry *,
-                               struct file *, unsigned open_flag,
-                               umode_t create_mode, int *opened);
+--- a/Documentation/filesystems/vfs.txt
++++ b/Documentation/filesystems/vfs.txt
+@@ -362,6 +362,7 @@ struct inode_operations {
+       int (*atomic_open)(struct inode *, struct dentry *, struct file *,
+                       unsigned open_flag, umode_t create_mode, int *opened);
+       int (*tmpfile) (struct inode *, struct dentry *, umode_t);
 +      int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
  };
  
  Again, all methods are called without any locks being held, unless
-@@ -692,6 +693,12 @@ struct address_space_operations {
+@@ -681,6 +682,12 @@ struct address_space_operations {
        but instead uses bmap to find out where the blocks in the file
        are and uses those addresses directly.
  
@@ -61,11 +57,9 @@ Index: linux-3.6-rc7-master/Documentation/filesystems/vfs.txt
  
    invalidatepage: If a page has PagePrivate set, then invalidatepage
          will be called when part or all of the page is to be removed
-Index: linux-3.6-rc7-master/fs/namei.c
-===================================================================
---- linux-3.6-rc7-master.orig/fs/namei.c       2012-09-28 13:36:40.000000000 +0200
-+++ linux-3.6-rc7-master/fs/namei.c    2012-09-28 13:36:47.000000000 +0200
-@@ -2870,9 +2870,12 @@ static int do_last(struct nameidata *nd,
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -2915,9 +2915,12 @@ static int do_last(struct nameidata *nd,
        error = may_open(&nd->path, acc_mode, open_flag);
        if (error)
                goto out;
@@ -81,21 +75,19 @@ Index: linux-3.6-rc7-master/fs/namei.c
                if (error == -EOPENSTALE)
                        goto stale_open;
                goto out;
-Index: linux-3.6-rc7-master/fs/open.c
-===================================================================
---- linux-3.6-rc7-master.orig/fs/open.c        2012-09-28 13:36:40.000000000 +0200
-+++ linux-3.6-rc7-master/fs/open.c     2012-09-28 13:36:47.000000000 +0200
-@@ -787,8 +787,7 @@ struct file *dentry_open(const struct pa
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -800,8 +800,7 @@ struct file *dentry_open(const struct pa
        f = get_empty_filp();
        if (!IS_ERR(f)) {
-               f->f_flags = flags;
+               f->f_flags = flags;
 -              f->f_path = *path;
 -              error = do_dentry_open(f, NULL, cred);
 +              error = vfs_open(path, f, cred);
                if (!error) {
-                       /* from now on we need fput() to dispose of f */
+                       /* from now on we need fput() to dispose of f */
                        error = open_check_o_direct(f);
-@@ -803,6 +802,26 @@ struct file *dentry_open(const struct pa
+@@ -818,6 +817,26 @@ struct file *dentry_open(const struct pa
  }
  EXPORT_SYMBOL(dentry_open);
  
@@ -122,19 +114,17 @@ Index: linux-3.6-rc7-master/fs/open.c
  static inline int build_open_flags(int flags, umode_t mode, struct open_flags *op)
  {
        int lookup_flags = 0;
-Index: linux-3.6-rc7-master/include/linux/fs.h
-===================================================================
---- linux-3.6-rc7-master.orig/include/linux/fs.h       2012-09-28 13:36:40.000000000 +0200
-+++ linux-3.6-rc7-master/include/linux/fs.h    2012-09-28 13:36:47.000000000 +0200
-@@ -1573,6 +1573,7 @@ struct inode_operations {
-       int (*atomic_open)(struct inode *, struct dentry *,
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -1585,6 +1585,7 @@ struct inode_operations {
                           struct file *, unsigned open_flag,
                           umode_t create_mode, int *opened);
+       int (*tmpfile) (struct inode *, struct dentry *, umode_t);
 +      int (*dentry_open)(struct dentry *, struct file *, const struct cred *);
  } ____cacheline_aligned;
  
  ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
-@@ -2211,6 +2212,7 @@ extern long do_sys_open(int dfd, const c
+@@ -2019,6 +2020,7 @@ extern struct file *file_open_name(struc
  extern struct file *filp_open(const char *, int, umode_t);
  extern struct file *file_open_root(struct dentry *, struct vfsmount *,
                                   const char *, int);
This page took 0.028869 seconds and 4 git commands to generate.