On Sat, 20 Oct 2007 [EMAIL PROTECTED] wrote:

>
> Hello Jim,
>
> Jim Garlick:
>> Just gave aufs 20071015 a test and had some difficulties:
>
> It might be an aufs bug introduced by recent changes.
> But let me make sure. Did you enable CONFIG_AUFS_PUT_FILP_PATCH? It was
> not on your list.

Junjiro-san,

My apologies - after I applied PUT_FILP and fixed some other configuration 
issues, my problems went away.  The problem is with Red Hat's EL5 kernel 
which claims to be 2.6.18 but includes backported features from newer 
kernels.  The patch below made 20071015 work for me.

Best regards,

Jim Garlick


? fs/aufs/Kconfig
Index: Kconfig.in
===================================================================
RCS file: /cvsroot/aufs/aufs/Kconfig.in,v
retrieving revision 1.19
diff -u -r1.19 Kconfig.in
--- Kconfig.in  15 Oct 2007 01:24:42 -0000      1.19
+++ Kconfig.in  21 Oct 2007 16:34:41 -0000
@@ -6,6 +6,8 @@
  #include <linux/utsrelease.h>
  #endif

+#define RHEL5
+
  config AUFS
        tristate "Another unionfs"
        help
@@ -168,7 +170,7 @@
        global and exports them to modules.
  #endif

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) || defined(RHEL5)
  config AUFS_PUT_FILP_PATCH
        bool "put_filp.patch for NFS branch"
        depends on AUFS
Index: fs/aufs/Makefile
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/Makefile,v
retrieving revision 1.36
diff -u -r1.36 Makefile
--- fs/aufs/Makefile    1 Oct 2007 04:43:01 -0000       1.36
+++ fs/aufs/Makefile    21 Oct 2007 16:34:41 -0000
@@ -24,6 +24,8 @@
  EXTRA_CFLAGS += -DFUSE_SUPER_MAGIC=${fuse}
  endif

+EXTRA_CFLAGS += -DRHEL5
+
  ########################################

  obj-$(CONFIG_AUFS) += aufs.o
Index: fs/aufs/aufs.h
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/aufs.h,v
retrieving revision 1.36
diff -u -r1.36 aufs.h
--- fs/aufs/aufs.h      8 Oct 2007 04:03:10 -0000       1.36
+++ fs/aufs/aufs.h      21 Oct 2007 16:34:41 -0000
@@ -56,7 +56,7 @@
  #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
  #define AuNoNfsBranch
  #define AuNoNfsBranchMsg _AuNoNfsBranchMsg
-#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5)) \
        && (!defined(CONFIG_AUFS_LHASH_PATCH) \
            || !(defined(CONFIG_AUFS) \
                 || defined(CONFIG_AUFS_PUT_FILP_PATCH)) \
Index: fs/aufs/cpup.h
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/cpup.h,v
retrieving revision 1.22
diff -u -r1.22 cpup.h
--- fs/aufs/cpup.h      8 Oct 2007 03:57:34 -0000       1.22
+++ fs/aufs/cpup.h      21 Oct 2007 16:34:41 -0000
@@ -30,7 +30,7 @@
  static inline
  void au_cpup_attr_blksize(struct inode *inode, struct inode *h_inode)
  {
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19) && !defined(RHEL5)
        inode->i_blksize = h_inode->i_blksize;
  #endif
  }
Index: fs/aufs/debug.c
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/debug.c,v
retrieving revision 1.40
diff -u -r1.40 debug.c
--- fs/aufs/debug.c     15 Oct 2007 01:26:24 -0000      1.40
+++ fs/aufs/debug.c     21 Oct 2007 16:34:41 -0000
@@ -163,7 +163,7 @@
        return 0;
  }

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5)) \
        && !defined(AuNoNfsBranch)
  #define intent(dinfo, bindex) (dinfo)->di_hdentry[0 + (bindex)].hd_intent_list
  #else
@@ -322,7 +322,7 @@
        au_debug_off();
  }

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5)
  static void au_sysrq(int key, struct tty_struct *tty)
  #else
  static void au_sysrq(int key, struct pt_regs *regs, struct tty_struct *tty)
Index: fs/aufs/dentry.c
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/dentry.c,v
retrieving revision 1.58
diff -u -r1.58 dentry.c
--- fs/aufs/dentry.c    15 Oct 2007 01:26:44 -0000      1.58
+++ fs/aufs/dentry.c    21 Oct 2007 16:34:41 -0000
@@ -22,7 +22,7 @@
  //#include <linux/namei.h>
  #include "aufs.h"

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5)) \
        && !defined(AuNoNfsBranch)
  static int au_fake_intent(struct nameidata *nd, int perm)
  {
@@ -192,7 +192,7 @@
        return ERR_PTR(-ENOSYS);
  }
  #endif
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) && !AuNoNfsBranch */
+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5)) 
&& !AuNoNfsBranch */

  /* ---------------------------------------------------------------------- */

@@ -357,7 +357,7 @@
                set_dbstart(dentry, bindex);
        set_h_dptr(dentry, bindex, h_dentry);

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5) \
        && !defined(AuNoNfsBranch)
        if (unlikely(ndx.nd_file)) {
                int err;
Index: fs/aufs/dentry.h
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/dentry.h,v
retrieving revision 1.35
diff -u -r1.35 dentry.h
--- fs/aufs/dentry.h    8 Oct 2007 03:58:19 -0000       1.35
+++ fs/aufs/dentry.h    21 Oct 2007 16:34:41 -0000
@@ -43,7 +43,7 @@
  struct aufs_hdentry {
        struct dentry           *hd_dentry;

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5)) \
        && !defined(AuNoNfsBranch)
        spinlock_t              hd_lock; /* intest_list */
        struct list_head        *hd_intent_list;
@@ -123,7 +123,7 @@
  void set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex,
                struct dentry *h_dentry);

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5) \
        && !defined(AuNoNfsBranch)
  int au_set_h_intent(struct dentry *dentry, aufs_bindex_t bindex,
                    struct file *file, struct file *h_file);
Index: fs/aufs/dinfo.c
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/dinfo.c,v
retrieving revision 1.35
diff -u -r1.35 dinfo.c
--- fs/aufs/dinfo.c     15 Oct 2007 01:26:57 -0000      1.35
+++ fs/aufs/dinfo.c     21 Oct 2007 16:34:41 -0000
@@ -361,7 +361,7 @@

  static void hintent_put(struct aufs_hdentry *hd)
  {
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5)) \
        && !defined(AuNoNfsBranch)
        struct aufs_hdintent *hdi, *tmp;
        struct file *hf;
@@ -405,7 +405,7 @@

  /* ---------------------------------------------------------------------- */

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5)) \
        && !defined(AuNoNfsBranch)
  static struct file *au_find_h_intent(struct aufs_hdentry *hd, struct file 
*file,
                                     int do_free)
Index: fs/aufs/dir.h
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/dir.h,v
retrieving revision 1.22
diff -u -r1.22 dir.h
--- fs/aufs/dir.h       8 Oct 2007 03:59:13 -0000       1.22
+++ fs/aufs/dir.h       21 Oct 2007 16:34:41 -0000
@@ -27,7 +27,7 @@
  #include <linux/version.h>
  #include <linux/aufs_type.h>

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5)
  typedef u64   au_filldir_ino_t;
  #else
  typedef ino_t au_filldir_ino_t;
Index: fs/aufs/file.c
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/file.c,v
retrieving revision 1.57
diff -u -r1.57 file.c
--- fs/aufs/file.c      15 Oct 2007 01:27:33 -0000      1.57
+++ fs/aufs/file.c      21 Oct 2007 16:34:41 -0000
@@ -67,7 +67,7 @@
                flags = au_file_roflags(flags);
        flags &= ~O_CREAT;

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(RHEL5)) \
        && !defined(AuNoNfsBranch)
        if (unlikely(file && au_test_nfs(h_dentry->d_sb))) {
                h_file = au_h_intent(dentry, bindex, file);
Index: fs/aufs/module.c
===================================================================
RCS file: /cvsroot/aufs/aufs/fs/aufs/module.c,v
retrieving revision 1.25
diff -u -r1.25 module.c
--- fs/aufs/module.c    15 Oct 2007 01:24:43 -0000      1.25
+++ fs/aufs/module.c    21 Oct 2007 16:34:41 -0000
@@ -373,7 +373,7 @@
  #endif /* CONFIG_AUFS_EXPORT */

  #ifdef CONFIG_AUFS_PUT_FILP_PATCH
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19) && !defined(RHEL5)
  #warning CONFIG_AUFS_PUT_FILP_PATCH does not support before linux-2.6.19.
  #endif
  #if !defined(CONFIG_NFS_FS) && !defined(CONFIG_NFS_FS_MODULE)
@@ -388,7 +388,7 @@
  #endif /* CONFIG_AUFS_PUT_FILP_PATCH */

  #ifdef CONFIG_AUFS_LHASH_PATCH
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19) && !defined(RHEL5)
  #error CONFIG_AUFS_LHASH_PATCH does not support before linux-2.6.19.
  #endif
  #if !defined(CONFIG_NFS_FS) && !defined(CONFIG_NFS_FS_MODULE)

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/

Reply via email to