Whamcloud - gitweb
Branch b1_6
authoryangsheng <yangsheng>
Thu, 24 Jul 2008 14:50:52 +0000 (14:50 +0000)
committeryangsheng <yangsheng>
Thu, 24 Jul 2008 14:50:52 +0000 (14:50 +0000)
b=15308
i=johann, shadow, zhenyu.xu, brian

Update to SLES10 SP2 kernel-2.6.16.60-0.23 and update to OFED-1.3.1.

23 files changed:
lustre/ChangeLog
lustre/autoconf/lustre-core.m4
lustre/include/linux/lustre_compat25.h
lustre/include/linux/lvfs.h
lustre/kernel_patches/kernel_configs/kernel-2.6.16-2.6-sles10-i686-bigsmp.config
lustre/kernel_patches/kernel_configs/kernel-2.6.16-2.6-sles10-i686.config
lustre/kernel_patches/kernel_configs/kernel-2.6.16-2.6-sles10-x86_64-smp.config
lustre/kernel_patches/kernel_configs/kernel-2.6.16-2.6-sles10-x86_64.config
lustre/kernel_patches/targets/2.6-sles10.target.in
lustre/kernel_patches/which_patch
lustre/llite/file.c
lustre/llite/rw.c
lustre/lvfs/lvfs_linux.c
lustre/lvfs/quotafmt_test.c
lustre/mds/mds_fs.c
lustre/mds/mds_join.c
lustre/mds/mds_open.c
lustre/mds/mds_reint.c
lustre/mds/mds_unlink_open.c
lustre/mgc/mgc_request.c
lustre/mgs/mgs_fs.c
lustre/obdclass/llog_lvfs.c
lustre/obdfilter/filter.c

index 2c6e64d..24e129b 100644 (file)
@@ -3,7 +3,7 @@ tbd Sun Microsystems, Inc.
        * Support for kernels:
         2.6.5-7.311 (SLES 9),
         2.6.9-67.0.20.EL (RHEL 4),
-        2.6.16.54-0.2.5 (SLES 10),
+        2.6.16.60-0.23 (SLES 10),
         2.6.18-92.1.6.el5 (RHEL 5),
         2.6.22.14 vanilla (kernel.org)
        * Client support for unpatched kernels:
@@ -39,6 +39,10 @@ tbd Sun Microsystems, Inc.
          old (verbose) output can be obtained by using -v option.
 
 Severity   : enhancement
+Bugzilla   : 15308
+Description: Update to SLES10 SP2 kernel-2.6.16.60-0.23.
+
+Severity   : enhancement
 Bugzilla   : 16190
 Description: Update to RHEL5 kernel-2.6.18-92.1.6.el5.
 
index dbca6b4..4af2934 100644 (file)
@@ -1315,6 +1315,9 @@ AC_DEFUN([LC_PROG_LINUX],
           # 2.6.15
           LC_INODE_I_MUTEX
 
+          # 2.6.16
+          LC_SECURITY_PLUG  # for SLES10 SP2
+
           # 2.6.17
           LC_DQUOTOFF_MUTEX
 
@@ -1557,6 +1560,27 @@ LB_LINUX_TRY_COMPILE([
 ])
 ])
 
+# LC_SECURITY_PLUG  # for SLES10 SP2
+# check security plug in sles10 sp2 kernel 
+AC_DEFUN([LC_SECURITY_PLUG],
+[AC_MSG_CHECKING([If kernel has security plug support])
+LB_LINUX_TRY_COMPILE([
+        #include <linux/fs.h>
+],[
+        struct dentry   *dentry;
+        struct vfsmount *mnt;
+        struct iattr    *iattr;
+
+        notify_change(dentry, mnt, iattr);
+],[
+        AC_MSG_RESULT(yes)
+        AC_DEFINE(HAVE_SECURITY_PLUG, 1,
+                [SLES10 SP2 use extra parameter in vfs])
+],[
+        AC_MSG_RESULT(NO)
+])
+])
+
 #
 # LC_CONFIGURE
 #
index 3d36f9f..b754ea6 100644 (file)
@@ -473,7 +473,13 @@ static inline int mapping_has_pages(struct address_space *mapping)
                 dentry->d_flags |= flags; \
                 spin_unlock(&dentry->d_lock); \
         } while(0)
-#define ll_vfs_symlink(dir, dentry, path, mode) vfs_symlink(dir, dentry, path, mode)
+#ifdef HAVE_SECURITY_PLUG
+#define ll_vfs_symlink(dir, dentry, mnt, path, mode) \
+                vfs_symlink(dir, dentry, mnt, path, mode)
+#else
+#define ll_vfs_symlink(dir, dentry, mnt, path, mode) \
+                vfs_symlink(dir, dentry, path, mode)
+#endif
 #endif
 
 #ifndef container_of
@@ -559,5 +565,29 @@ int ll_unregister_blkdev(unsigned int dev, const char *name)
 #define LL_RENAME_DOES_D_MOVE  FS_ODD_RENAME
 #endif
 
+#ifdef HAVE_SECURITY_PLUG
+#define ll_remove_suid(inode,mnt)               remove_suid(inode,mnt)
+#define ll_vfs_rmdir(dir,entry,mnt)             vfs_rmdir(dir,entry,mnt)
+#define ll_vfs_mkdir(inode,dir,mnt,mode)        vfs_mkdir(inode,dir,mnt,mode)
+#define ll_vfs_link(old,mnt,dir,new,mnt1)       vfs_link(old,mnt,dir,new,mnt1)
+#define ll_vfs_unlink(inode,entry,mnt)          vfs_unlink(inode,entry,mnt)
+#define ll_vfs_mknod(dir,entry,mnt,mode,dev)            \
+                vfs_mknod(dir,entry,mnt,mode,dev)
+#define ll_security_inode_unlink(dir,entry,mnt)         \
+                security_inode_unlink(dir,entry,mnt)     
+#define ll_vfs_rename(old,old_dir,mnt,new,new_dir,mnt1) \
+                vfs_rename(old,old_dir,mnt,new,new_dir,mnt1)
+#else
+#define ll_remove_suid(inode,mnt)               remove_suid(inode)
+#define ll_vfs_rmdir(dir,entry,mnt)             vfs_rmdir(dir,entry)
+#define ll_vfs_mkdir(inode,dir,mnt,mode)        vfs_mkdir(inode,dir,mode)
+#define ll_vfs_link(old,mnt,dir,new,mnt1)       vfs_link(old,dir,new)
+#define ll_vfs_unlink(inode,entry,mnt)          vfs_unlink(inode,entry)
+#define ll_vfs_mknod(dir,entry,mnt,mode,dev)    vfs_mknod(dir,entry,mode,dev)
+#define ll_security_inode_unlink(dir,entry,mnt) security_inode_unlink(dir,entry)     
+#define ll_vfs_rename(old,old_dir,mnt,new,new_dir,mnt1) \
+                vfs_rename(old,old_dir,new,new_dir)
+#endif
+
 #endif /* __KERNEL__ */
 #endif /* _COMPAT25_H */
index 2eae365..0fa316a 100644 (file)
@@ -101,9 +101,11 @@ struct lvfs_run_ctxt {
 
 #ifdef __KERNEL__
 
-struct dentry *simple_mkdir(struct dentry *dir, char *name, int mode, int fix);
+struct dentry *simple_mkdir(struct dentry *dir, struct vfsmount *mnt, 
+                            char *name, int mode, int fix);
 struct dentry *simple_mknod(struct dentry *dir, char *name, int mode, int fix);
-int lustre_rename(struct dentry *dir, char *oldname, char *newname);
+int lustre_rename(struct dentry *dir, struct vfsmount *mnt, char *oldname,
+                  char *newname);
 int lustre_fread(struct file *file, void *buf, int len, loff_t *off);
 int lustre_fwrite(struct file *file, const void *buf, int len, loff_t *off);
 int lustre_fsync(struct file *file);
index 3ae4b96..97d697e 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16.46
-# Tue Jul  3 17:56:03 2007
+# Linux kernel version: 2.6.16.60
+# Wed May 21 20:30:49 2008
 #
 CONFIG_X86_32=y
 CONFIG_SEMAPHORE_SLEEPERS=y
@@ -26,15 +26,15 @@ CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_SUSE_KERNEL=y
 CONFIG_SLE_VERSION=10
-CONFIG_SLE_SP=1
+CONFIG_SLE_SP=2
 CONFIG_SLE_SP_SUBLEVEL=0
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASK_XACCT=y
 CONFIG_SYSCTL=y
 CONFIG_AUDIT=y
@@ -112,6 +112,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
 # CONFIG_X86_VISWS is not set
 CONFIG_X86_GENERICARCH=y
 # CONFIG_X86_ES7000 is not set
+# CONFIG_X86_VMI is not set
 CONFIG_X86_CYCLONE_TIMER=y
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
@@ -180,6 +181,7 @@ CONFIG_X86_CPUID=m
 CONFIG_EDD=m
 CONFIG_DELL_RBU=m
 CONFIG_DCDBAS=m
+CONFIG_DMIID=y
 # CONFIG_NOHIGHMEM is not set
 # CONFIG_HIGHMEM4G is not set
 CONFIG_HIGHMEM64G=y
@@ -236,6 +238,7 @@ CONFIG_ACPI_BUTTON=m
 CONFIG_ACPI_VIDEO=m
 # CONFIG_ACPI_HOTKEY is not set
 CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=m
 CONFIG_ACPI_PROCESSOR=m
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_THERMAL=m
@@ -323,6 +326,7 @@ CONFIG_PCI_MMCONFIG=y
 CONFIG_PCIEPORTBUS=y
 CONFIG_HOTPLUG_PCI_PCIE=m
 # CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
+CONFIG_PCIEAER=y
 CONFIG_PCI_MSI=y
 # CONFIG_PCI_LEGACY_PROC is not set
 # CONFIG_PCI_DEBUG is not set
@@ -1201,6 +1205,7 @@ CONFIG_SCSI_FC_ATTRS=m
 # CONFIG_SCSI_ISCSI_ATTRS is not set
 CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
+# CONFIG_SCSI_SAS_ATA is not set
 # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
 CONFIG_ISCSI_TARGET=m
 
@@ -1397,11 +1402,8 @@ CONFIG_DM_MULTIPATH=m
 CONFIG_DM_MULTIPATH_EMC=m
 CONFIG_DM_MULTIPATH_HP_SW=m
 CONFIG_DM_MULTIPATH_RDAC=m
+CONFIG_DM_MULTIPATH_ALUA=m
 CONFIG_DM_NL_EVT=y
-
-#
-# Fusion MPT device support
-#
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
 CONFIG_FUSION_FC=m
@@ -1410,6 +1412,7 @@ CONFIG_FUSION_MAX_SGE=128
 CONFIG_FUSION_MAX_FC_SGE=256
 CONFIG_FUSION_CTL=m
 CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
 
 #
 # IEEE 1394 (FireWire) support
@@ -1595,6 +1598,7 @@ CONFIG_DL2K=m
 CONFIG_E1000=m
 CONFIG_E1000_NAPI=y
 # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
+CONFIG_IGB=m
 CONFIG_NS83820=m
 CONFIG_HAMACHI=m
 CONFIG_YELLOWFIN=m
@@ -1608,17 +1612,22 @@ CONFIG_SK98LIN=m
 CONFIG_VIA_VELOCITY=m
 CONFIG_TIGON3=m
 CONFIG_BNX2=m
+CONFIG_BNX2X=m
 CONFIG_QLA3XXX=m
 
 #
 # Ethernet (10000 Mbit)
 #
 CONFIG_CHELSIO_T1=m
+# CONFIG_CHELSIO_T3 is not set
+CONFIG_IXGBE=m
+# CONFIG_IXGBE_NAPI is not set
 CONFIG_IXGB=m
 CONFIG_IXGB_NAPI=y
 CONFIG_S2IO=m
 CONFIG_S2IO_NAPI=y
 CONFIG_NETXEN_NIC=m
+CONFIG_MYRI10GE=m
 
 #
 # Token Ring devices
@@ -1801,7 +1810,6 @@ CONFIG_NET_FC=y
 CONFIG_SHAPER=m
 CONFIG_NETCONSOLE=m
 CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
 CONFIG_NETPOLL_TRAP=y
 CONFIG_NET_POLL_CONTROLLER=y
 
@@ -2366,6 +2374,8 @@ CONFIG_SENSORS_HDAPS=m
 # Misc devices
 #
 CONFIG_IBM_ASM=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
 
 #
 # Multimedia Capabilities Port drivers
@@ -3113,8 +3123,22 @@ CONFIG_USB_XUSBATM=m
 #
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD Card Drivers
+#
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_RICOH_MMC=m
 CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
 
 #
 # InfiniBand support
@@ -3431,7 +3455,13 @@ CONFIG_SECURITY_APPARMOR=m
 # Cryptographic options
 #
 CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ABLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_MANAGER=m
 CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
 CONFIG_CRYPTO_NULL=m
 CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=y
@@ -3440,9 +3470,18 @@ CONFIG_CRYPTO_SHA256=m
 CONFIG_CRYPTO_SHA512=m
 CONFIG_CRYPTO_WP512=m
 CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
 CONFIG_CRYPTO_BLOWFISH=m
 CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_586=m
 CONFIG_CRYPTO_SERPENT=m
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_AES_586=m
@@ -3455,13 +3494,15 @@ CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_TEST=m
 
 #
 # Hardware crypto devices
 #
 CONFIG_CRYPTO_DEV_PADLOCK=m
-CONFIG_CRYPTO_DEV_PADLOCK_AES=y
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
 
 #
 # Library routines
index ded8f04..ea7c80f 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16.46
-# Tue Jul  3 17:46:57 2007
+# Linux kernel version: 2.6.16.60
+# Wed May 21 20:31:52 2008
 #
 CONFIG_X86_32=y
 CONFIG_SEMAPHORE_SLEEPERS=y
@@ -26,15 +26,15 @@ CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_SUSE_KERNEL=y
 CONFIG_SLE_VERSION=10
-CONFIG_SLE_SP=1
+CONFIG_SLE_SP=2
 CONFIG_SLE_SP_SUBLEVEL=0
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASK_XACCT=y
 CONFIG_SYSCTL=y
 CONFIG_AUDIT=y
@@ -112,6 +112,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
 # CONFIG_X86_VISWS is not set
 CONFIG_X86_GENERICARCH=y
 # CONFIG_X86_ES7000 is not set
+# CONFIG_X86_VMI is not set
 CONFIG_X86_CYCLONE_TIMER=y
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
@@ -180,6 +181,7 @@ CONFIG_X86_CPUID=m
 CONFIG_EDD=m
 CONFIG_DELL_RBU=m
 CONFIG_DCDBAS=m
+CONFIG_DMIID=y
 # CONFIG_NOHIGHMEM is not set
 # CONFIG_HIGHMEM4G is not set
 CONFIG_HIGHMEM64G=y
@@ -236,6 +238,7 @@ CONFIG_ACPI_BUTTON=m
 CONFIG_ACPI_VIDEO=m
 # CONFIG_ACPI_HOTKEY is not set
 CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=m
 CONFIG_ACPI_PROCESSOR=m
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_THERMAL=m
@@ -323,6 +326,7 @@ CONFIG_PCI_MMCONFIG=y
 CONFIG_PCIEPORTBUS=y
 CONFIG_HOTPLUG_PCI_PCIE=m
 # CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
+CONFIG_PCIEAER=y
 CONFIG_PCI_MSI=y
 # CONFIG_PCI_LEGACY_PROC is not set
 # CONFIG_PCI_DEBUG is not set
@@ -1201,6 +1205,7 @@ CONFIG_SCSI_FC_ATTRS=m
 # CONFIG_SCSI_ISCSI_ATTRS is not set
 CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
+# CONFIG_SCSI_SAS_ATA is not set
 # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
 CONFIG_ISCSI_TARGET=m
 
@@ -1397,11 +1402,8 @@ CONFIG_DM_MULTIPATH=m
 CONFIG_DM_MULTIPATH_EMC=m
 CONFIG_DM_MULTIPATH_HP_SW=m
 CONFIG_DM_MULTIPATH_RDAC=m
+CONFIG_DM_MULTIPATH_ALUA=m
 CONFIG_DM_NL_EVT=y
-
-#
-# Fusion MPT device support
-#
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
 CONFIG_FUSION_FC=m
@@ -1410,6 +1412,7 @@ CONFIG_FUSION_MAX_SGE=128
 CONFIG_FUSION_MAX_FC_SGE=256
 CONFIG_FUSION_CTL=m
 CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
 
 #
 # IEEE 1394 (FireWire) support
@@ -1595,6 +1598,7 @@ CONFIG_DL2K=m
 CONFIG_E1000=m
 CONFIG_E1000_NAPI=y
 # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
+CONFIG_IGB=m
 CONFIG_NS83820=m
 CONFIG_HAMACHI=m
 CONFIG_YELLOWFIN=m
@@ -1608,17 +1612,22 @@ CONFIG_SK98LIN=m
 CONFIG_VIA_VELOCITY=m
 CONFIG_TIGON3=m
 CONFIG_BNX2=m
+CONFIG_BNX2X=m
 CONFIG_QLA3XXX=m
 
 #
 # Ethernet (10000 Mbit)
 #
 CONFIG_CHELSIO_T1=m
+# CONFIG_CHELSIO_T3 is not set
+CONFIG_IXGBE=m
+# CONFIG_IXGBE_NAPI is not set
 CONFIG_IXGB=m
 CONFIG_IXGB_NAPI=y
 CONFIG_S2IO=m
 CONFIG_S2IO_NAPI=y
 CONFIG_NETXEN_NIC=m
+CONFIG_MYRI10GE=m
 
 #
 # Token Ring devices
@@ -1801,7 +1810,6 @@ CONFIG_NET_FC=y
 CONFIG_SHAPER=m
 CONFIG_NETCONSOLE=m
 CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
 CONFIG_NETPOLL_TRAP=y
 CONFIG_NET_POLL_CONTROLLER=y
 
@@ -2366,6 +2374,8 @@ CONFIG_SENSORS_HDAPS=m
 # Misc devices
 #
 CONFIG_IBM_ASM=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
 
 #
 # Multimedia Capabilities Port drivers
@@ -3113,8 +3123,22 @@ CONFIG_USB_XUSBATM=m
 #
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD Card Drivers
+#
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_RICOH_MMC=m
 CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
 
 #
 # InfiniBand support
@@ -3431,7 +3455,13 @@ CONFIG_SECURITY_APPARMOR=m
 # Cryptographic options
 #
 CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ABLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_MANAGER=m
 CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
 CONFIG_CRYPTO_NULL=m
 CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=y
@@ -3440,9 +3470,18 @@ CONFIG_CRYPTO_SHA256=m
 CONFIG_CRYPTO_SHA512=m
 CONFIG_CRYPTO_WP512=m
 CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
 CONFIG_CRYPTO_BLOWFISH=m
 CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_586=m
 CONFIG_CRYPTO_SERPENT=m
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_AES_586=m
@@ -3455,13 +3494,15 @@ CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_TEST=m
 
 #
 # Hardware crypto devices
 #
 CONFIG_CRYPTO_DEV_PADLOCK=m
-CONFIG_CRYPTO_DEV_PADLOCK_AES=y
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
 
 #
 # Library routines
index f2598ed..eb87a50 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16.46
-# Tue Jul  3 18:35:09 2007
+# Linux kernel version: 2.6.16.60
+# Wed May 21 20:28:50 2008
 #
 CONFIG_X86_64=y
 CONFIG_64BIT=y
@@ -32,15 +32,15 @@ CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_SUSE_KERNEL=y
 CONFIG_SLE_VERSION=10
-CONFIG_SLE_SP=1
+CONFIG_SLE_SP=2
 CONFIG_SLE_SP_SUBLEVEL=0
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASK_XACCT=y
 CONFIG_SYSCTL=y
 CONFIG_AUDIT=y
@@ -198,6 +198,7 @@ CONFIG_ACPI_BUTTON=m
 CONFIG_ACPI_VIDEO=m
 # CONFIG_ACPI_HOTKEY is not set
 CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=m
 CONFIG_ACPI_PROCESSOR=m
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_THERMAL=m
@@ -259,6 +260,7 @@ CONFIG_PCI_MMCONFIG=y
 CONFIG_PCIEPORTBUS=y
 CONFIG_HOTPLUG_PCI_PCIE=m
 # CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
+CONFIG_PCIEAER=y
 CONFIG_PCI_MSI=y
 # CONFIG_PCI_LEGACY_PROC is not set
 # CONFIG_PCI_DEBUG is not set
@@ -1096,6 +1098,7 @@ CONFIG_SCSI_FC_ATTRS=m
 # CONFIG_SCSI_ISCSI_ATTRS is not set
 CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
+# CONFIG_SCSI_SAS_ATA is not set
 # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
 CONFIG_ISCSI_TARGET=m
 
@@ -1249,11 +1252,8 @@ CONFIG_DM_MULTIPATH=m
 CONFIG_DM_MULTIPATH_EMC=m
 CONFIG_DM_MULTIPATH_HP_SW=m
 CONFIG_DM_MULTIPATH_RDAC=m
+CONFIG_DM_MULTIPATH_ALUA=m
 CONFIG_DM_NL_EVT=y
-
-#
-# Fusion MPT device support
-#
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
 CONFIG_FUSION_FC=m
@@ -1262,6 +1262,7 @@ CONFIG_FUSION_MAX_SGE=128
 CONFIG_FUSION_MAX_FC_SGE=256
 CONFIG_FUSION_CTL=m
 CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
 
 #
 # IEEE 1394 (FireWire) support
@@ -1409,6 +1410,7 @@ CONFIG_DL2K=m
 CONFIG_E1000=m
 CONFIG_E1000_NAPI=y
 # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
+CONFIG_IGB=m
 CONFIG_NS83820=m
 CONFIG_HAMACHI=m
 CONFIG_YELLOWFIN=m
@@ -1422,17 +1424,22 @@ CONFIG_SK98LIN=m
 CONFIG_VIA_VELOCITY=m
 CONFIG_TIGON3=m
 CONFIG_BNX2=m
+CONFIG_BNX2X=m
 CONFIG_QLA3XXX=m
 
 #
 # Ethernet (10000 Mbit)
 #
 CONFIG_CHELSIO_T1=m
+# CONFIG_CHELSIO_T3 is not set
+CONFIG_IXGBE=m
+# CONFIG_IXGBE_NAPI is not set
 CONFIG_IXGB=m
 CONFIG_IXGB_NAPI=y
 CONFIG_S2IO=m
 CONFIG_S2IO_NAPI=y
 CONFIG_NETXEN_NIC=m
+CONFIG_MYRI10GE=m
 
 #
 # Token Ring devices
@@ -1540,7 +1547,6 @@ CONFIG_NET_FC=y
 CONFIG_SHAPER=m
 CONFIG_NETCONSOLE=m
 CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
 CONFIG_NETPOLL_TRAP=y
 CONFIG_NET_POLL_CONTROLLER=y
 
@@ -2044,6 +2050,8 @@ CONFIG_SENSORS_HDAPS=m
 # Misc devices
 #
 CONFIG_IBM_ASM=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
 
 #
 # Multimedia Capabilities Port drivers
@@ -2690,8 +2698,22 @@ CONFIG_USB_LD=m
 #
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD Card Drivers
+#
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_RICOH_MMC=m
 CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
 
 #
 # InfiniBand support
@@ -3004,7 +3026,13 @@ CONFIG_SECURITY_APPARMOR=m
 # Cryptographic options
 #
 CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ABLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_MANAGER=m
 CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
 CONFIG_CRYPTO_NULL=m
 CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=y
@@ -3013,9 +3041,18 @@ CONFIG_CRYPTO_SHA256=m
 CONFIG_CRYPTO_SHA512=m
 CONFIG_CRYPTO_WP512=m
 CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
 CONFIG_CRYPTO_BLOWFISH=m
 CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
 CONFIG_CRYPTO_SERPENT=m
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_AES_X86_64=m
@@ -3028,6 +3065,7 @@ CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_TEST=m
 
 #
index 51b18df..ec9a18c 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16.46
-# Tue Jul  3 18:30:50 2007
+# Linux kernel version: 2.6.16.60
+# Wed May 21 20:29:32 2008
 #
 CONFIG_X86_64=y
 CONFIG_64BIT=y
@@ -32,15 +32,15 @@ CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_SUSE_KERNEL=y
 CONFIG_SLE_VERSION=10
-CONFIG_SLE_SP=1
+CONFIG_SLE_SP=2
 CONFIG_SLE_SP_SUBLEVEL=0
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASK_XACCT=y
 CONFIG_SYSCTL=y
 CONFIG_AUDIT=y
@@ -180,6 +180,7 @@ CONFIG_ACPI_BUTTON=m
 CONFIG_ACPI_VIDEO=m
 # CONFIG_ACPI_HOTKEY is not set
 CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=m
 CONFIG_ACPI_PROCESSOR=m
 CONFIG_ACPI_THERMAL=m
 CONFIG_ACPI_ASUS=m
@@ -239,6 +240,7 @@ CONFIG_PCI_MMCONFIG=y
 CONFIG_PCIEPORTBUS=y
 CONFIG_HOTPLUG_PCI_PCIE=m
 # CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
+CONFIG_PCIEAER=y
 CONFIG_PCI_MSI=y
 # CONFIG_PCI_LEGACY_PROC is not set
 # CONFIG_PCI_DEBUG is not set
@@ -1077,6 +1079,7 @@ CONFIG_SCSI_FC_ATTRS=m
 # CONFIG_SCSI_ISCSI_ATTRS is not set
 CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
+# CONFIG_SCSI_SAS_ATA is not set
 # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
 CONFIG_ISCSI_TARGET=m
 
@@ -1230,11 +1233,8 @@ CONFIG_DM_MULTIPATH=m
 CONFIG_DM_MULTIPATH_EMC=m
 CONFIG_DM_MULTIPATH_HP_SW=m
 CONFIG_DM_MULTIPATH_RDAC=m
+CONFIG_DM_MULTIPATH_ALUA=m
 CONFIG_DM_NL_EVT=y
-
-#
-# Fusion MPT device support
-#
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
 CONFIG_FUSION_FC=m
@@ -1243,6 +1243,7 @@ CONFIG_FUSION_MAX_SGE=128
 CONFIG_FUSION_MAX_FC_SGE=256
 CONFIG_FUSION_CTL=m
 CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
 
 #
 # IEEE 1394 (FireWire) support
@@ -1391,6 +1392,7 @@ CONFIG_DL2K=m
 CONFIG_E1000=m
 CONFIG_E1000_NAPI=y
 # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
+CONFIG_IGB=m
 CONFIG_NS83820=m
 CONFIG_HAMACHI=m
 CONFIG_YELLOWFIN=m
@@ -1404,17 +1406,22 @@ CONFIG_SK98LIN=m
 CONFIG_VIA_VELOCITY=m
 CONFIG_TIGON3=m
 CONFIG_BNX2=m
+CONFIG_BNX2X=m
 CONFIG_QLA3XXX=m
 
 #
 # Ethernet (10000 Mbit)
 #
 CONFIG_CHELSIO_T1=m
+# CONFIG_CHELSIO_T3 is not set
+CONFIG_IXGBE=m
+# CONFIG_IXGBE_NAPI is not set
 CONFIG_IXGB=m
 CONFIG_IXGB_NAPI=y
 CONFIG_S2IO=m
 CONFIG_S2IO_NAPI=y
 CONFIG_NETXEN_NIC=m
+CONFIG_MYRI10GE=m
 
 #
 # Token Ring devices
@@ -1522,7 +1529,6 @@ CONFIG_NET_FC=y
 CONFIG_SHAPER=m
 CONFIG_NETCONSOLE=m
 CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
 CONFIG_NETPOLL_TRAP=y
 CONFIG_NET_POLL_CONTROLLER=y
 
@@ -2032,6 +2038,8 @@ CONFIG_SENSORS_HDAPS=m
 # Misc devices
 #
 CONFIG_IBM_ASM=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
 
 #
 # Multimedia Capabilities Port drivers
@@ -2678,8 +2686,22 @@ CONFIG_USB_LD=m
 #
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD Card Drivers
+#
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_RICOH_MMC=m
 CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
 
 #
 # InfiniBand support
@@ -2992,7 +3014,13 @@ CONFIG_SECURITY_APPARMOR=m
 # Cryptographic options
 #
 CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ABLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_MANAGER=m
 CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
 CONFIG_CRYPTO_NULL=m
 CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=y
@@ -3001,9 +3029,18 @@ CONFIG_CRYPTO_SHA256=m
 CONFIG_CRYPTO_SHA512=m
 CONFIG_CRYPTO_WP512=m
 CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
 CONFIG_CRYPTO_BLOWFISH=m
 CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
 CONFIG_CRYPTO_SERPENT=m
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_AES_X86_64=m
@@ -3016,6 +3053,7 @@ CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_DEFLATE=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_TEST=m
 
 #
index 3a71d94..cf68153 100644 (file)
@@ -1,5 +1,5 @@
 lnxmaj="2.6.16"
-lnxrel="54-0.2.5"
+lnxrel="60-0.23"
 
 # this is the delimeter that goes between $lnxmaj and $lnxrel
 # defaults to "-"
@@ -19,7 +19,7 @@ LINUX26=1
 # No /boot/Kerntypes* in SLES10
 SUSEBUILD=0
 
-OFED_VERSION=1.3
+OFED_VERSION=1.3.1
 
 BASE_ARCHS="i686 ppc x86_64 ia64 ppc64"
 BIGMEM_ARCHS=""
index eb90349..ab7948c 100644 (file)
@@ -4,7 +4,7 @@ SUPPORTED KERNELS:
 2.6-suse              SLES9 before SP1         already in SLES9 SP1 kernel
 2.6-suse-newer        SLES9: 2.6.5-7.311       extra patches for SLES9 after SP1
 2.6-rhel4             RHEL4: 2.6.9-67.0.20.EL
-2.6-sles10            SLES10: 2.6.16.54-0.2.5
+2.6-sles10            SLES10: 2.6.16.60-0.23
 2.6-rhel5             RHEL5: 2.6.18-92.1.6.el5
 2.6.18-vanilla        kernel.org: 2.6.18.8
 2.6.22-vanilla        kernel.org: 2.6.22.14
index c65d942..8f90640 100644 (file)
@@ -640,21 +640,6 @@ int ll_lsm_getattr(struct obd_export *exp, struct lov_stripe_md *lsm,
         RETURN(0);
 }
 
-static inline void ll_remove_suid(struct inode *inode)
-{
-        unsigned int mode;
-
-        /* set S_IGID if S_IXGRP is set, and always set S_ISUID */
-        mode = (inode->i_mode & S_IXGRP)*(S_ISGID/S_IXGRP) | S_ISUID;
-
-        /* was any of the uid bits set? */
-        mode &= inode->i_mode;
-        if (mode && !capable(CAP_FSETID)) {
-                inode->i_mode &= ~mode;
-                // XXX careful here - we cannot change the size
-        }
-}
-
 static int ll_lock_to_stripe_offset(struct inode *inode, struct ldlm_lock *lock)
 {
         struct ll_inode_info *lli = ll_i2info(inode);
index 9964894..2db576b 100644 (file)
@@ -2131,7 +2131,7 @@ ssize_t ll_file_lockless_io(struct file *file, const struct iovec *iov,
                 rc = generic_write_checks(file, ppos, &count, 0);
                 if (rc)
                         GOTO(out, rc);
-                rc = remove_suid(file->f_dentry);
+                rc = ll_remove_suid(file->f_dentry, file->f_vfsmnt);
                 if (rc)
                         GOTO(out, rc);
         }
index e39b8a1..2b3de8f 100644 (file)
@@ -282,7 +282,8 @@ out_up:
 EXPORT_SYMBOL(simple_mknod);
 
 /* utility to make a directory */
-struct dentry *simple_mkdir(struct dentry *dir, char *name, int mode, int fix)
+struct dentry *simple_mkdir(struct dentry *dir, struct vfsmount *mnt, 
+                            char *name, int mode, int fix)
 {
         struct dentry *dchild;
         int err = 0;
@@ -315,7 +316,7 @@ struct dentry *simple_mkdir(struct dentry *dir, char *name, int mode, int fix)
                 GOTO(out_up, dchild);
         }
 
-        err = vfs_mkdir(dir->d_inode, dchild, mode);
+        err = ll_vfs_mkdir(dir->d_inode, dchild, mnt, mode);
         if (err)
                 GOTO(out_err, err);
 
@@ -330,7 +331,8 @@ out_up:
 EXPORT_SYMBOL(simple_mkdir);
 
 /* utility to rename a file */
-int lustre_rename(struct dentry *dir, char *oldname, char *newname)
+int lustre_rename(struct dentry *dir, struct vfsmount *mnt, 
+                  char *oldname, char *newname)
 {
         struct dentry *dchild_old, *dchild_new;
         int err = 0;
@@ -351,7 +353,8 @@ int lustre_rename(struct dentry *dir, char *oldname, char *newname)
         if (IS_ERR(dchild_new))
                 GOTO(put_old, err = PTR_ERR(dchild_new));
 
-        err = vfs_rename(dir->d_inode, dchild_old, dir->d_inode, dchild_new);
+        err = ll_vfs_rename(dir->d_inode, dchild_old, mnt, 
+                            dir->d_inode, dchild_new, mnt);
 
         dput(dchild_new);
 put_old:
index 6f31e04..438872e 100644 (file)
@@ -84,7 +84,8 @@ static int quotfmt_initialize(struct lustre_quota_info *lqi,
                 LOCK_INODE_MUTEX(parent_inode);
                 de = lookup_one_len(name, tgt->obd_lvfs_ctxt.pwd, namelen);
                 if (!IS_ERR(de) && de->d_inode)
-                        vfs_unlink(parent_inode, de);
+                        ll_vfs_unlink(parent_inode, de, 
+                                      tgt->obd_lvfs_ctxt.pwdmnt);
                 if (!IS_ERR(de))
                         dput(de);
                 UNLOCK_INODE_MUTEX(parent_inode);
@@ -145,7 +146,7 @@ static int quotfmt_finalize(struct lustre_quota_info *lqi,
                         goto dput;
                 }
 
-                rc = vfs_unlink(parent_inode, de);
+                rc = ll_vfs_unlink(parent_inode, de, tgt->obd_lvfs_ctxt.pwdmnt);
                 if (rc)
                         CERROR("error unlink quotafile %s (rc = %d)\n",
                                name, rc);
index 4b76093..d0689d6 100644 (file)
@@ -532,7 +532,7 @@ int mds_fs_setup(struct obd_device *obd, struct vfsmount *mnt)
 
         /* setup the directory tree */
         push_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
-        dentry = simple_mkdir(current->fs->pwd, "ROOT", 0755, 0);
+        dentry = simple_mkdir(current->fs->pwd, mnt, "ROOT", 0755, 0);
         if (IS_ERR(dentry)) {
                 rc = PTR_ERR(dentry);
                 CERROR("cannot create ROOT directory: rc = %d\n", rc);
@@ -560,7 +560,7 @@ int mds_fs_setup(struct obd_device *obd, struct vfsmount *mnt)
                 GOTO(err_fid, rc);
         }
 
-        dentry = simple_mkdir(current->fs->pwd, "PENDING", 0777, 1);
+        dentry = simple_mkdir(current->fs->pwd, mnt, "PENDING", 0777, 1);
         if (IS_ERR(dentry)) {
                 rc = PTR_ERR(dentry);
                 CERROR("cannot create PENDING directory: rc = %d\n", rc);
@@ -569,7 +569,7 @@ int mds_fs_setup(struct obd_device *obd, struct vfsmount *mnt)
         mds->mds_pending_dir = dentry;
 
         /* COMPAT_146 */
-        dentry = simple_mkdir(current->fs->pwd, MDT_LOGS_DIR, 0777, 1);
+        dentry = simple_mkdir(current->fs->pwd, mnt, MDT_LOGS_DIR, 0777, 1);
         if (IS_ERR(dentry)) {
                 rc = PTR_ERR(dentry);
                 CERROR("cannot create %s directory: rc = %d\n",
@@ -579,7 +579,7 @@ int mds_fs_setup(struct obd_device *obd, struct vfsmount *mnt)
         mds->mds_logs_dir = dentry;
         /* end COMPAT_146 */
 
-        dentry = simple_mkdir(current->fs->pwd, "OBJECTS", 0777, 1);
+        dentry = simple_mkdir(current->fs->pwd, mnt, "OBJECTS", 0777, 1);
         if (IS_ERR(dentry)) {
                 rc = PTR_ERR(dentry);
                 CERROR("cannot create OBJECTS directory: rc = %d\n", rc);
@@ -769,8 +769,9 @@ int mds_obd_create(struct obd_export *exp, struct obdo *oa,
                 GOTO(out_dput, rc = PTR_ERR(handle));
 
         lock_kernel();
-        rc = vfs_rename(mds->mds_objects_dir->d_inode, filp->f_dentry,
-                        mds->mds_objects_dir->d_inode, new_child);
+        rc = ll_vfs_rename(mds->mds_objects_dir->d_inode, filp->f_dentry,
+                           filp->f_vfsmnt, mds->mds_objects_dir->d_inode, 
+                           new_child, filp->f_vfsmnt);
         unlock_kernel();
         if (rc)
                 CERROR("error renaming new object "LPU64":%u: rc %d\n",
@@ -845,7 +846,7 @@ int mds_obd_destroy(struct obd_export *exp, struct obdo *oa,
            vfs_unlink() context. bug 10409 */
         inode = de->d_inode;
         atomic_inc(&inode->i_count);
-        rc = vfs_unlink(mds->mds_objects_dir->d_inode, de);
+        rc = ll_vfs_unlink(mds->mds_objects_dir->d_inode, de, mds->mds_vfsmnt);
         if (rc)
                 CERROR("error destroying object "LPU64":%u: rc %d\n",
                        oa->o_id, oa->o_generation, rc);
index 26b9862..68329cd 100644 (file)
@@ -321,7 +321,7 @@ static int mds_join_unlink_tail_inode(struct mds_update_record *rec,
                 le32_to_cpu(tail_lmm->lmm_magic) == LOV_MAGIC);
 
         LASSERT(de_tailparent);
-        rc = vfs_unlink(de_tailparent->d_inode, de_tail);
+        rc = ll_vfs_unlink(de_tailparent->d_inode, de_tail, mds->mds_vfsmnt);
 
         if (rc == 0) {
                 CDEBUG(D_INODE, "delete the tail inode %lu/%u \n",
index 4cebcfd..041b991 100644 (file)
@@ -1251,7 +1251,8 @@ found_child:
                         ldlm_lock_decref(child_lockh, child_mode);
         case 2:
                 if (rc && created) {
-                        int err = vfs_unlink(dparent->d_inode, dchild);
+                        int err = ll_vfs_unlink(dparent->d_inode, dchild,
+                                                mds->mds_vfsmnt);
                         if (err) {
                                 CERROR("unlink(%.*s) in error path: %d\n",
                                        dchild->d_name.len, dchild->d_name.name,
@@ -1360,7 +1361,8 @@ int mds_mfd_close(struct ptlrpc_request *req, int offset,
 
                 cleanup_phase = 2; /* dput(pending_child) when finished */
                 if (S_ISDIR(pending_child->d_inode->i_mode)) {
-                        rc = vfs_rmdir(pending_dir, pending_child);
+                        rc = ll_vfs_rmdir(pending_dir, pending_child, 
+                                          mds->mds_vfsmnt);
                         if (rc)
                                 CERROR("error unlinking orphan dir %s: rc %d\n",
                                        fidname,rc);
@@ -1387,7 +1389,7 @@ int mds_mfd_close(struct ptlrpc_request *req, int offset,
                 dp.ldp_inum = 0;
                 dp.ldp_ptr = req;
                 pending_child->d_fsdata = (void *) &dp;
-                rc = vfs_unlink(pending_dir, pending_child);
+                rc = ll_vfs_unlink(pending_dir, pending_child, mds->mds_vfsmnt);
                 if (rc)
                         CERROR("error unlinking orphan %s: rc %d\n",fidname,rc);
 
index 04e5b23..5249b8c 100644 (file)
@@ -914,7 +914,7 @@ static int mds_reint_create(struct mds_update_record *rec, int offset,
                 handle = fsfilt_start(obd, dir, FSFILT_OP_MKDIR, NULL);
                 if (IS_ERR(handle))
                         GOTO(cleanup, rc = PTR_ERR(handle));
-                rc = vfs_mkdir(dir, dchild, rec->ur_mode);
+                rc = ll_vfs_mkdir(dir, dchild, mds->mds_vfsmnt, rec->ur_mode);
                 mds_counter_incr(req->rq_export, LPROC_MDS_MKDIR);
                 EXIT;
                 break;
@@ -926,7 +926,8 @@ static int mds_reint_create(struct mds_update_record *rec, int offset,
                 if (rec->ur_tgt == NULL)        /* no target supplied */
                         rc = -EINVAL;           /* -EPROTO? */
                 else
-                        rc = ll_vfs_symlink(dir, dchild, rec->ur_tgt, S_IALLUGO);
+                        rc = ll_vfs_symlink(dir, dchild, mds->mds_vfsmnt, 
+                                            rec->ur_tgt, S_IALLUGO);
                 mds_counter_incr(req->rq_export, LPROC_MDS_MKNOD);
                 EXIT;
                 break;
@@ -939,7 +940,8 @@ static int mds_reint_create(struct mds_update_record *rec, int offset,
                 handle = fsfilt_start(obd, dir, FSFILT_OP_MKNOD, NULL);
                 if (IS_ERR(handle))
                         GOTO(cleanup, rc = PTR_ERR(handle));
-                rc = vfs_mknod(dir, dchild, rec->ur_mode, rdev);
+                rc = ll_vfs_mknod(dir, dchild, mds->mds_vfsmnt, rec->ur_mode, 
+                                  rdev);
                 mds_counter_incr(req->rq_export, LPROC_MDS_MKNOD);
                 EXIT;
                 break;
@@ -1026,12 +1028,12 @@ cleanup:
                  */
                 switch (type) {
                 case S_IFDIR:
-                        err = vfs_rmdir(dir, dchild);
+                        err = ll_vfs_rmdir(dir, dchild, mds->mds_vfsmnt);
                         if (err)
                                 CERROR("rmdir in error path: %d\n", err);
                         break;
                 default:
-                        err = vfs_unlink(dir, dchild);
+                        err = ll_vfs_unlink(dir, dchild, mds->mds_vfsmnt);
                         if (err)
                                 CERROR("unlink in error path: %d\n", err);
                         break;
@@ -1562,7 +1564,8 @@ static int mds_orphan_add_link(struct mds_update_record *rec,
          * for linking and return real mode back then -bzzz */
         mode = inode->i_mode;
         inode->i_mode = S_IFREG;
-        rc = vfs_link(dentry, pending_dir, pending_child);
+        rc = ll_vfs_link(dentry, mds->mds_vfsmnt, pending_dir, pending_child,
+                         mds->mds_vfsmnt);
         if (rc)
                 CERROR("error linking orphan %s to PENDING: rc = %d\n",
                        rec->ur_name, rc);
@@ -1737,7 +1740,7 @@ static int mds_reint_unlink(struct mds_update_record *rec, int offset,
                                       NULL);
                 if (IS_ERR(handle))
                         GOTO(cleanup, rc = PTR_ERR(handle));
-                rc = vfs_rmdir(dparent->d_inode, dchild);
+                rc = ll_vfs_rmdir(dparent->d_inode, dchild, mds->mds_vfsmnt);
                 mds_counter_incr(req->rq_export, LPROC_MDS_RMDIR);
                 break;
         case S_IFREG: {
@@ -1748,7 +1751,7 @@ static int mds_reint_unlink(struct mds_update_record *rec, int offset,
                                           le32_to_cpu(lmm->lmm_stripe_count));
                 if (IS_ERR(handle))
                         GOTO(cleanup, rc = PTR_ERR(handle));
-                rc = vfs_unlink(dparent->d_inode, dchild);
+                rc = ll_vfs_unlink(dparent->d_inode, dchild, mds->mds_vfsmnt);
                 mds_counter_incr(req->rq_export, LPROC_MDS_UNLINK);
                 break;
         }
@@ -1761,7 +1764,7 @@ static int mds_reint_unlink(struct mds_update_record *rec, int offset,
                                       NULL);
                 if (IS_ERR(handle))
                         GOTO(cleanup, rc = PTR_ERR(handle));
-                rc = vfs_unlink(dparent->d_inode, dchild);
+                rc = ll_vfs_unlink(dparent->d_inode, dchild, mds->mds_vfsmnt);
                 mds_counter_incr(req->rq_export, LPROC_MDS_UNLINK);
                 break;
         default:
@@ -1958,7 +1961,8 @@ static int mds_reint_link(struct mds_update_record *rec, int offset,
         if (IS_ERR(handle))
                 GOTO(cleanup, rc = PTR_ERR(handle));
 
-        rc = vfs_link(de_src, de_tgt_dir->d_inode, dchild);
+        rc = ll_vfs_link(de_src, mds->mds_vfsmnt, de_tgt_dir->d_inode, dchild,
+                         mds->mds_vfsmnt);
         if (rc && rc != -EPERM && rc != -EACCES)
                 CERROR("vfs_link error %d\n", rc);
 cleanup:
@@ -2333,7 +2337,8 @@ no_unlink:
         de_old->d_fsdata = req;
         de_new->d_fsdata = req;
 
-        rc = vfs_rename(de_srcdir->d_inode, de_old, de_tgtdir->d_inode, de_new);
+        rc = ll_vfs_rename(de_srcdir->d_inode, de_old, mds->mds_vfsmnt, 
+                           de_tgtdir->d_inode, de_new, mds->mds_vfsmnt);
         unlock_kernel();
 
         if (rc == 0 && new_inode != NULL && new_inode->i_nlink == 0) {
index 76c497d..2725ef6 100644 (file)
@@ -128,7 +128,7 @@ static int mds_unlink_orphan(struct obd_device *obd, struct dentry *dchild,
          * especially not mds_get_md (may get a default LOV EA, bug 4554) */
         mode = inode->i_mode;
         if (S_ISDIR(mode)) {
-                rc = vfs_rmdir(pending_dir, dchild);
+                rc = ll_vfs_rmdir(pending_dir, dchild, mds->mds_vfsmnt);
                 if (rc)
                         CERROR("error %d unlinking dir %*s from PENDING\n",
                                rc, dchild->d_name.len, dchild->d_name.name);
@@ -153,7 +153,7 @@ static int mds_unlink_orphan(struct obd_device *obd, struct dentry *dchild,
                 GOTO(out_free_lmm, rc);
         }
 
-        rc = vfs_unlink(pending_dir, dchild);
+        rc = ll_vfs_unlink(pending_dir, dchild, mds->mds_vfsmnt);
         if (rc) {
                 CERROR("error %d unlinking orphan %.*s from PENDING\n",
                        rc, dchild->d_name.len, dchild->d_name.name);
index b836e2a..f245250 100644 (file)
@@ -1065,7 +1065,8 @@ out_closel:
                 struct client_obd *cli = &obd->u.cli;
                 LASSERT(cli);
                 LASSERT(cli->cl_mgc_configs_dir);
-                rc = lustre_rename(cli->cl_mgc_configs_dir, temp_log, logname);
+                rc = lustre_rename(cli->cl_mgc_configs_dir, cli->cl_mgc_vfsmnt,
+                                   temp_log, logname);
         }
         CDEBUG(D_MGC, "Copied remote log %s (%d)\n", logname, rc);
 out:
index 3e58281..735a3d5 100644 (file)
@@ -195,7 +195,7 @@ int mgs_fs_setup(struct obd_device *obd, struct vfsmount *mnt)
         push_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
 
         /* Setup the configs dir */
-        dentry = simple_mkdir(current->fs->pwd, MOUNT_CONFIGS_DIR, 0777, 1);
+        dentry = simple_mkdir(current->fs->pwd, mnt, MOUNT_CONFIGS_DIR, 0777, 1);
         if (IS_ERR(dentry)) {
                 rc = PTR_ERR(dentry);
                 CERROR("cannot create %s directory: rc = %d\n", 
index 2f0e528..5876981 100644 (file)
@@ -725,6 +725,7 @@ static int llog_lvfs_destroy(struct llog_handle *handle)
         if (strcmp(fdentry->d_parent->d_name.name, dir) == 0) {
                 struct inode *inode = fdentry->d_parent->d_inode;
                 struct lvfs_run_ctxt saved;
+                struct vfsmount *mnt = mntget(handle->lgh_file->f_vfsmnt);
 
                 push_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
                 dget(fdentry);
@@ -732,9 +733,10 @@ static int llog_lvfs_destroy(struct llog_handle *handle)
 
                 if (rc == 0) {
                         LOCK_INODE_MUTEX(inode);
-                        rc = vfs_unlink(inode, fdentry);
+                        rc = ll_vfs_unlink(inode, fdentry, mnt);
                         UNLOCK_INODE_MUTEX(inode);
                 }
+                mntput(mnt);
 
                 dput(fdentry);
                 pop_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
index 2f39aa0..9492d06 100644 (file)
@@ -937,7 +937,8 @@ static int filter_prep_groups(struct obd_device *obd)
         int i, rc = 0, cleanup_phase = 0;
         ENTRY;
 
-        O_dentry = simple_mkdir(current->fs->pwd, "O", 0700, 1);
+        O_dentry = simple_mkdir(current->fs->pwd, filter->fo_vfsmnt, 
+                                "O", 0700, 1);
         CDEBUG(D_INODE, "got/created O: %p\n", O_dentry);
         if (IS_ERR(O_dentry)) {
                 rc = PTR_ERR(O_dentry);
@@ -964,7 +965,8 @@ static int filter_prep_groups(struct obd_device *obd)
                 loff_t off = 0;
 
                 sprintf(name, "%d", i);
-                dentry = simple_mkdir(O_dentry, name, 0700, 1);
+                dentry = simple_mkdir(O_dentry, filter->fo_vfsmnt, 
+                                      name, 0700, 1);
                 CDEBUG(D_INODE, "got/created O/%s: %p\n", name, dentry);
                 if (IS_ERR(dentry)) {
                         rc = PTR_ERR(dentry);
@@ -1015,7 +1017,8 @@ static int filter_prep_groups(struct obd_device *obd)
                         char dir[20];
                         snprintf(dir, sizeof(dir), "d%u", i);
 
-                        dentry = simple_mkdir(O_dentry, dir, 0700, 1);
+                        dentry = simple_mkdir(O_dentry, filter->fo_vfsmnt,
+                                              dir, 0700, 1);
                         CDEBUG(D_INODE, "got/created O/0/%s: %p\n", dir,dentry);
                         if (IS_ERR(dentry)) {
                                 rc = PTR_ERR(dentry);
@@ -1308,7 +1311,8 @@ static int filter_prepare_destroy(struct obd_device *obd, obd_id objid)
  * i_sem before starting a handle, while filter_destroy() + vfs_unlink do the
  * reverse.  Caller must take i_sem before starting the transaction and we
  * drop it here before the inode is removed from the dentry.  bug 4180/6984 */
-int filter_vfs_unlink(struct inode *dir, struct dentry *dentry)
+int filter_vfs_unlink(struct inode *dir, struct dentry *dentry,
+                      struct vfsmount *mnt)
 {
         int rc;
         ENTRY;
@@ -1342,7 +1346,7 @@ int filter_vfs_unlink(struct inode *dir, struct dentry *dentry)
         DQUOT_INIT(dir);
 
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
-        rc = security_inode_unlink(dir, dentry);
+        rc = ll_security_inode_unlink(dir, dentry, mnt);
         if (rc)
                 GOTO(out, rc);
 #endif
@@ -1365,6 +1369,7 @@ static int filter_destroy_internal(struct obd_device *obd, obd_id objid,
                                    struct dentry *dchild)
 {
         struct inode *inode = dchild->d_inode;
+        struct filter_obd *filter = &obd->u.filter;
         int rc;
 
         if (inode->i_nlink != 1 || atomic_read(&inode->i_count) != 1) {
@@ -1374,7 +1379,7 @@ static int filter_destroy_internal(struct obd_device *obd, obd_id objid,
                        atomic_read(&inode->i_count));
         }
 
-        rc = filter_vfs_unlink(dparent->d_inode, dchild);
+        rc = filter_vfs_unlink(dparent->d_inode, dchild, filter->fo_vfsmnt);
         if (rc)
                 CERROR("error unlinking objid %.*s: rc %d\n",
                        dchild->d_name.len, dchild->d_name.name, rc);