* 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:
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.
# 2.6.15
LC_INODE_I_MUTEX
+ # 2.6.16
+ LC_SECURITY_PLUG # for SLES10 SP2
+
# 2.6.17
LC_DQUOTOFF_MUTEX
])
])
+# 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
#
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
#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 */
#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);
#
# 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
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
# 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
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
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
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
# 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
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
CONFIG_FUSION_MAX_FC_SGE=256
CONFIG_FUSION_CTL=m
CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
#
# IEEE 1394 (FireWire) support
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
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
CONFIG_SHAPER=m
CONFIG_NETCONSOLE=m
CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# Misc devices
#
CONFIG_IBM_ASM=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
#
# Multimedia Capabilities Port drivers
#
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
# 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
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
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
#
# 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
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
# 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
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
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
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
# 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
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
CONFIG_FUSION_MAX_FC_SGE=256
CONFIG_FUSION_CTL=m
CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
#
# IEEE 1394 (FireWire) support
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
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
CONFIG_SHAPER=m
CONFIG_NETCONSOLE=m
CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# Misc devices
#
CONFIG_IBM_ASM=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
#
# Multimedia Capabilities Port drivers
#
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
# 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
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
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
#
# 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
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
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
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
# 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
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
CONFIG_FUSION_MAX_FC_SGE=256
CONFIG_FUSION_CTL=m
CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
#
# IEEE 1394 (FireWire) support
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
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
CONFIG_SHAPER=m
CONFIG_NETCONSOLE=m
CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# Misc devices
#
CONFIG_IBM_ASM=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
#
# Multimedia Capabilities Port drivers
#
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
# 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
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
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_TEST=m
#
#
# 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
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
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
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
# 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
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
CONFIG_FUSION_MAX_FC_SGE=256
CONFIG_FUSION_CTL=m
CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
#
# IEEE 1394 (FireWire) support
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
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
CONFIG_SHAPER=m
CONFIG_NETCONSOLE=m
CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# Misc devices
#
CONFIG_IBM_ASM=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
#
# Multimedia Capabilities Port drivers
#
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
# 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
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
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_TEST=m
#
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 "-"
# 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=""
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
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);
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);
}
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;
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);
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;
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:
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);
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);
/* 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);
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);
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",
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);
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",
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);
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",
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,
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);
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);
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;
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;
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;
*/
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;
* 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);
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: {
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;
}
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:
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:
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) {
* 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);
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);
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:
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",
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);
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);
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);
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);
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);
* 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;
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
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) {
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);