Whamcloud - gitweb
LU-3079 kernel: f_vfsmnt replaced by f_path.mnt 99/5899/5
authorAlexey Shvetsov <alexxy@gentoo.org>
Sun, 31 Mar 2013 16:13:21 +0000 (20:13 +0400)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 26 Jul 2013 17:38:23 +0000 (17:38 +0000)
In linux 3.9 f_vfsmnt was killed and replaced

commit 182be684784334598eee1d90274e7f7aa0063616
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Jan 24 02:21:54 2013 -0500

    kill f_vfsmnt

    very few users left...

Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
Change-Id: I02f595f0b7bbe804c9695d6da2106deb2d17e0ee
Reviewed-on: http://review.whamcloud.com/5899
Tested-by: Hudson
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: Yang Sheng <yang.sheng@intel.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/autoconf/lustre-core.m4
lustre/llite/dir.c

index ec50de0..0aa7236 100644 (file)
@@ -1528,6 +1528,28 @@ LB_LINUX_TRY_COMPILE([
 ])
 
 #
+# 3.9 killed f_vfsmnt by
+# 182be684784334598eee1d90274e7f7aa0063616
+# replacement is f_path.mnt
+#
+AC_DEFUN([LC_HAVE_F_PATH_MNT],
+[AC_MSG_CHECKING([if struct file has f_path.mnt])
+LB_LINUX_TRY_COMPILE([
+       #include <linux/fs.h>
+],[
+       struct file *fp = NULL;
+       struct path  path;
+
+       path.mnt = fp->f_path.mnt;
+],[
+       AC_DEFINE(HAVE_F_PATH_MNT,1,[yes])
+       AC_MSG_RESULT([yes])
+],[
+       AC_MSG_RESULT([no])
+])
+])
+
+#
 # LC_PROG_LINUX
 #
 # Lustre linux kernel checks
@@ -1657,6 +1679,7 @@ AC_DEFUN([LC_PROG_LINUX],
 
         # 3.9
         LC_HAVE_HLIST_FOR_EACH_3ARG
+        LC_HAVE_F_PATH_MNT
 
         #
         if test x$enable_server = xyes ; then
index dd7f7df..e625200 100644 (file)
@@ -629,7 +629,11 @@ static int ll_readdir(struct file *filp, void *cookie, filldir_t filldir)
         }
        filp->f_version = inode->i_version;
 #ifdef HAVE_TOUCH_ATIME_1ARG
+#ifdef HAVE_F_PATH_MNT
+       path.mnt = filp->f_path.mnt;
+#else
        path.mnt = filp->f_vfsmnt;
+#endif
        path.dentry = filp->f_dentry;
        touch_atime(&path);
 #else