From 07593c5432e747b7fa61e9cf417b46033c6f384d Mon Sep 17 00:00:00 2001 From: ericm Date: Wed, 29 Oct 2003 05:14:01 +0000 Subject: [PATCH] merge b_devel -> b_eq: 20031029 kerenl pass sanity.sh, liblustre is broken --- lustre/include/linux/lustre_log.h | 16 +- .../patches/ext3-map_inode_page.patch | 4 +- lustre/kernel_patches/pc/dump_netdev.pc | 9 - lustre/kernel_patches/pc/ext3-error-export.pc | 1 - lustre/kernel_patches/pc/ext3-map_inode_page.pc | 3 - lustre/kernel_patches/pc/ext3-san-jdike-2.5.73.pc | 2 - .../pc/ext3_delete_thread_2.4.20_chaos.pc | 5 - lustre/kernel_patches/pc/inode-unhash_2.5.75.pc | 2 - .../pc/invalidate_show_2.4.20_chaos.pc | 4 - lustre/kernel_patches/pc/iopen-2.5.73.pc | 8 - lustre/kernel_patches/pc/lustre_build.pc | 5 - .../kernel_patches/pc/qla2xxx-v8.00.00b1-2.5.73.pc | 42 --- .../pc/tcp_zero_copy_2.4.20_chaos.pc | 5 - lustre/kernel_patches/pc/uml-patch-2.4.20-6.pc | 398 --------------------- .../pc/vfs_intent-2.4.18-18-chaos65.pc | 12 - lustre/kernel_patches/pc/vfs_intent-2.4.20-hp.pc | 14 - .../kernel_patches/pc/vfs_intent_2.4.20_chaos.pc | 14 - lustre/kernel_patches/pc/vfs_mntcwd_2.5.72_rev1.pc | 0 lustre/kernel_patches/pc/vfs_races_2.5.72_rev1.pc | 3 - lustre/llite/llite_lib.c | 129 +++---- lustre/lov/lov_internal.h | 22 +- lustre/obdfilter/filter_internal.h | 21 +- lustre/obdfilter/filter_log.c | 70 ---- lustre/ptlrpc/Makefile.mk | 2 +- 24 files changed, 100 insertions(+), 691 deletions(-) delete mode 100644 lustre/kernel_patches/pc/dump_netdev.pc delete mode 100644 lustre/kernel_patches/pc/ext3-error-export.pc delete mode 100644 lustre/kernel_patches/pc/ext3-map_inode_page.pc delete mode 100644 lustre/kernel_patches/pc/ext3-san-jdike-2.5.73.pc delete mode 100644 lustre/kernel_patches/pc/ext3_delete_thread_2.4.20_chaos.pc delete mode 100644 lustre/kernel_patches/pc/inode-unhash_2.5.75.pc delete mode 100644 lustre/kernel_patches/pc/invalidate_show_2.4.20_chaos.pc delete mode 100644 lustre/kernel_patches/pc/iopen-2.5.73.pc delete mode 100644 lustre/kernel_patches/pc/lustre_build.pc delete mode 100644 lustre/kernel_patches/pc/qla2xxx-v8.00.00b1-2.5.73.pc delete mode 100644 lustre/kernel_patches/pc/tcp_zero_copy_2.4.20_chaos.pc delete mode 100644 lustre/kernel_patches/pc/uml-patch-2.4.20-6.pc delete mode 100644 lustre/kernel_patches/pc/vfs_intent-2.4.18-18-chaos65.pc delete mode 100644 lustre/kernel_patches/pc/vfs_intent-2.4.20-hp.pc delete mode 100644 lustre/kernel_patches/pc/vfs_intent_2.4.20_chaos.pc delete mode 100644 lustre/kernel_patches/pc/vfs_mntcwd_2.5.72_rev1.pc delete mode 100644 lustre/kernel_patches/pc/vfs_races_2.5.72_rev1.pc diff --git a/lustre/include/linux/lustre_log.h b/lustre/include/linux/lustre_log.h index 6c53b52..9f3e3ca 100644 --- a/lustre/include/linux/lustre_log.h +++ b/lustre/include/linux/lustre_log.h @@ -101,13 +101,15 @@ int obd_llog_origin_add(struct obd_export *exp, int obd_llog_repl_cancel(struct obd_device *, struct lov_stripe_md *lsm, int count, struct llog_cookie *cookies, int flags); -int llog_obd_setup_logid(struct obd_device *obd, struct obd_device *disk_obd, - int index, int count, struct llog_logid *logid); +int llog_obd_setup(struct obd_device *obd, struct obd_device *disk_obd, + int index, int count, struct llog_logid *logid); int llog_obd_cleanup(struct obd_device *obd); int llog_obd_origin_add(struct obd_export *exp, int index, struct llog_rec_hdr *rec, struct lov_stripe_md *lsm, struct llog_cookie *logcookies, int numcookies); +int llog_initialize(struct obd_device *obd); +int llog_disconnect(struct obd_device *obd); int llog_cat_initialize(struct obd_device *obd, int count); @@ -183,7 +185,7 @@ static inline int llog_write_rec(struct llog_handle *handle, int numcookies, void *buf, int idx) { struct llog_operations *lop; - int rc; + int rc, buflen; ENTRY; rc = llog_handle2ops(handle, &lop); @@ -191,7 +193,13 @@ static inline int llog_write_rec(struct llog_handle *handle, RETURN(rc); if (lop->lop_write_rec == NULL) RETURN(-EOPNOTSUPP); - LASSERT((rec->lrh_len % LLOG_MIN_REC_SIZE) == 0); + + if (buf) + buflen = le32_to_cpu(rec->lrh_len) + sizeof(struct llog_rec_hdr) + + sizeof(struct llog_rec_tail); + else + buflen = le32_to_cpu(rec->lrh_len); + LASSERT((buflen % LLOG_MIN_REC_SIZE) == 0); rc = lop->lop_write_rec(handle, rec, logcookies, numcookies, buf, idx); RETURN(rc); diff --git a/lustre/kernel_patches/patches/ext3-map_inode_page.patch b/lustre/kernel_patches/patches/ext3-map_inode_page.patch index 2be6076..3218a0e 100644 --- a/lustre/kernel_patches/patches/ext3-map_inode_page.patch +++ b/lustre/kernel_patches/patches/ext3-map_inode_page.patch @@ -23,7 +23,7 @@ + + blocksize = inode->i_sb->s_blocksize; + blocks_per_page = PAGE_SIZE >> inode->i_sb->s_blocksize_bits; -+ iblock = page->index >> (PAGE_SHIFT - inode->i_sb->s_blocksize_bits); ++ iblock = page->index * blocks_per_page; + + for (i = 0; i < blocks_per_page; i++, iblock++) { + blocks[i] = ext3_bmap(inode->i_mapping, iblock); @@ -45,7 +45,7 @@ + if (IS_ERR(handle)) + return PTR_ERR(handle); + -+ iblock = page->index >> (PAGE_SHIFT - inode->i_sb->s_blocksize_bits); ++ iblock = page->index * blocks_per_page; + for (i = 0; i < blocks_per_page; i++, iblock++) { + if (blocks[i] != 0) + continue; diff --git a/lustre/kernel_patches/pc/dump_netdev.pc b/lustre/kernel_patches/pc/dump_netdev.pc deleted file mode 100644 index bb2fde5..0000000 --- a/lustre/kernel_patches/pc/dump_netdev.pc +++ /dev/null @@ -1,9 +0,0 @@ -drivers/net/3c59x.c -drivers/net/e100/e100_main.c -drivers/net/e1000/e1000_main.c -drivers/net/eepro100.c -drivers/net/smc-ultra.c -drivers/net/tlan.c -drivers/net/tulip/tulip_core.c -include/linux/netdevice.h -net/core/dev.c diff --git a/lustre/kernel_patches/pc/ext3-error-export.pc b/lustre/kernel_patches/pc/ext3-error-export.pc deleted file mode 100644 index efd7db0..0000000 --- a/lustre/kernel_patches/pc/ext3-error-export.pc +++ /dev/null @@ -1 +0,0 @@ -fs/ext3/ext3-exports.c diff --git a/lustre/kernel_patches/pc/ext3-map_inode_page.pc b/lustre/kernel_patches/pc/ext3-map_inode_page.pc deleted file mode 100644 index 6631de4..0000000 --- a/lustre/kernel_patches/pc/ext3-map_inode_page.pc +++ /dev/null @@ -1,3 +0,0 @@ -fs/ext3/inode.c -fs/ext3/ext3-exports.c -fs/ext3/Makefile diff --git a/lustre/kernel_patches/pc/ext3-san-jdike-2.5.73.pc b/lustre/kernel_patches/pc/ext3-san-jdike-2.5.73.pc deleted file mode 100644 index 231df0e..0000000 --- a/lustre/kernel_patches/pc/ext3-san-jdike-2.5.73.pc +++ /dev/null @@ -1,2 +0,0 @@ -fs/ext3/inode.c -fs/ext3/super.c diff --git a/lustre/kernel_patches/pc/ext3_delete_thread_2.4.20_chaos.pc b/lustre/kernel_patches/pc/ext3_delete_thread_2.4.20_chaos.pc deleted file mode 100644 index a2c3109..0000000 --- a/lustre/kernel_patches/pc/ext3_delete_thread_2.4.20_chaos.pc +++ /dev/null @@ -1,5 +0,0 @@ -fs/ext3/super.c -fs/ext3/inode.c -fs/ext3/file.c -include/linux/ext3_fs.h -include/linux/ext3_fs_sb.h diff --git a/lustre/kernel_patches/pc/inode-unhash_2.5.75.pc b/lustre/kernel_patches/pc/inode-unhash_2.5.75.pc deleted file mode 100644 index 7d04f84..0000000 --- a/lustre/kernel_patches/pc/inode-unhash_2.5.75.pc +++ /dev/null @@ -1,2 +0,0 @@ -fs/inode.c -include/linux/fs.h diff --git a/lustre/kernel_patches/pc/invalidate_show_2.4.20_chaos.pc b/lustre/kernel_patches/pc/invalidate_show_2.4.20_chaos.pc deleted file mode 100644 index 1d4ed77..0000000 --- a/lustre/kernel_patches/pc/invalidate_show_2.4.20_chaos.pc +++ /dev/null @@ -1,4 +0,0 @@ -fs/inode.c -fs/super.c -include/linux/fs.h -fs/smbfs/inode.c diff --git a/lustre/kernel_patches/pc/iopen-2.5.73.pc b/lustre/kernel_patches/pc/iopen-2.5.73.pc deleted file mode 100644 index b40b1f3..0000000 --- a/lustre/kernel_patches/pc/iopen-2.5.73.pc +++ /dev/null @@ -1,8 +0,0 @@ -Documentation/filesystems/ext2.txt -fs/ext3/Makefile -fs/ext3/inode.c -fs/ext3/iopen.c -fs/ext3/iopen.h -fs/ext3/namei.c -fs/ext3/super.c -include/linux/ext3_fs.h diff --git a/lustre/kernel_patches/pc/lustre_build.pc b/lustre/kernel_patches/pc/lustre_build.pc deleted file mode 100644 index 98afcc6..0000000 --- a/lustre/kernel_patches/pc/lustre_build.pc +++ /dev/null @@ -1,5 +0,0 @@ -Makefile -init/main.c -fs/Makefile -mm/Makefile -fs/Kconfig diff --git a/lustre/kernel_patches/pc/qla2xxx-v8.00.00b1-2.5.73.pc b/lustre/kernel_patches/pc/qla2xxx-v8.00.00b1-2.5.73.pc deleted file mode 100644 index 06952b0..0000000 --- a/lustre/kernel_patches/pc/qla2xxx-v8.00.00b1-2.5.73.pc +++ /dev/null @@ -1,42 +0,0 @@ -drivers/scsi/Makefile -drivers/scsi/Kconfig -drivers/scsi/qla2xxx/Kconfig -drivers/scsi/qla2xxx/Makefile -drivers/scsi/qla2xxx/README.qla2x00 -drivers/scsi/qla2xxx/exioct.h -drivers/scsi/qla2xxx/exioctln.h -drivers/scsi/qla2xxx/inioct.h -drivers/scsi/qla2xxx/ql2100tp_fw.c -drivers/scsi/qla2xxx/ql2200ip_fw.c -drivers/scsi/qla2xxx/ql2300tpx_fw.c -drivers/scsi/qla2xxx/qla_cfg.c -drivers/scsi/qla2xxx/qla_cfg.h -drivers/scsi/qla2xxx/qla_cfgln.c -drivers/scsi/qla2xxx/qla_dbg.c -drivers/scsi/qla2xxx/qla_dbg.h -drivers/scsi/qla2xxx/qla_def.h -drivers/scsi/qla2xxx/qla_fo.c -drivers/scsi/qla2xxx/qla_fo.cfg -drivers/scsi/qla2xxx/qla_fo.h -drivers/scsi/qla2xxx/qla_gbl.h -drivers/scsi/qla2xxx/qla_inioct.c -drivers/scsi/qla2xxx/qla_init.c -drivers/scsi/qla2xxx/qla_inline.h -drivers/scsi/qla2xxx/qla_iocb.c -drivers/scsi/qla2xxx/qla_ip.c -drivers/scsi/qla2xxx/qla_ip.h -drivers/scsi/qla2xxx/qla_isr.c -drivers/scsi/qla2xxx/qla_listops.h -drivers/scsi/qla2xxx/qla_mbx.c -drivers/scsi/qla2xxx/qla_os.c -drivers/scsi/qla2xxx/qla_os.h -drivers/scsi/qla2xxx/qla_settings.h -drivers/scsi/qla2xxx/qla_sup.c -drivers/scsi/qla2xxx/qla_vendor.c -drivers/scsi/qla2xxx/qla_version.h -drivers/scsi/qla2xxx/qla_xioct.c -drivers/scsi/qla2xxx/qlfo.h -drivers/scsi/qla2xxx/qlfolimits.h -drivers/scsi/qla2xxx/qlfoln.h -drivers/scsi/qla2xxx/release.txt -drivers/scsi/qla2xxx/revision.notes diff --git a/lustre/kernel_patches/pc/tcp_zero_copy_2.4.20_chaos.pc b/lustre/kernel_patches/pc/tcp_zero_copy_2.4.20_chaos.pc deleted file mode 100644 index 02877c0..0000000 --- a/lustre/kernel_patches/pc/tcp_zero_copy_2.4.20_chaos.pc +++ /dev/null @@ -1,5 +0,0 @@ -include/linux/skbuff.h -include/net/tcp.h -net/netsyms.c -net/core/skbuff.c -net/ipv4/tcp.c diff --git a/lustre/kernel_patches/pc/uml-patch-2.4.20-6.pc b/lustre/kernel_patches/pc/uml-patch-2.4.20-6.pc deleted file mode 100644 index cad8767..0000000 --- a/lustre/kernel_patches/pc/uml-patch-2.4.20-6.pc +++ /dev/null @@ -1,398 +0,0 @@ -arch/um/common.ld.in -arch/um/config_block.in -arch/um/config_char.in -arch/um/config.in -arch/um/config_net.in -arch/um/config.release -arch/um/config_scsi.in -arch/um/defconfig -arch/um/drivers/chan_kern.c -arch/um/drivers/chan_user.c -arch/um/drivers/cow.h -arch/um/drivers/cow_sys.h -arch/um/drivers/cow_user.c -arch/um/drivers/daemon.h -arch/um/drivers/daemon_kern.c -arch/um/drivers/daemon_user.c -arch/um/drivers/fd.c -arch/um/drivers/harddog_kern.c -arch/um/drivers/harddog_user.c -arch/um/drivers/hostaudio_kern.c -arch/um/drivers/hostaudio_user.c -arch/um/drivers/line.c -arch/um/drivers/Makefile -arch/um/drivers/mcast.h -arch/um/drivers/mcast_kern.c -arch/um/drivers/mcast_user.c -arch/um/drivers/mconsole_kern.c -arch/um/drivers/mconsole_user.c -arch/um/drivers/mmapper_kern.c -arch/um/drivers/net_kern.c -arch/um/drivers/net_user.c -arch/um/drivers/null.c -arch/um/drivers/pcap_kern.c -arch/um/drivers/pcap_user.c -arch/um/drivers/pcap_user.h -arch/um/drivers/port.h -arch/um/drivers/port_kern.c -arch/um/drivers/port_user.c -arch/um/drivers/pty.c -arch/um/drivers/slip.h -arch/um/drivers/slip_kern.c -arch/um/drivers/slip_proto.h -arch/um/drivers/slip_user.c -arch/um/drivers/slirp.h -arch/um/drivers/slirp_kern.c -arch/um/drivers/slirp_user.c -arch/um/drivers/ssl.c -arch/um/drivers/ssl.h -arch/um/drivers/stdio_console.c -arch/um/drivers/stdio_console.h -arch/um/drivers/tty.c -arch/um/drivers/ubd_kern.c -arch/um/drivers/ubd_user.c -arch/um/drivers/xterm.c -arch/um/drivers/xterm.h -arch/um/drivers/xterm_kern.c -arch/um/dyn_link.ld.in -arch/um/fs/hostfs/hostfs.h -arch/um/fs/hostfs/hostfs_kern.c -arch/um/fs/hostfs/hostfs_user.c -arch/um/fs/hostfs/Makefile -arch/um/fs/hppfs/hppfs_kern.c -arch/um/fs/hppfs/Makefile -arch/um/fs/Makefile -arch/um/include/2_5compat.h -arch/um/include/chan_kern.h -arch/um/include/chan_user.h -arch/um/include/choose-mode.h -arch/um/include/frame.h -arch/um/include/frame_kern.h -arch/um/include/frame_user.h -arch/um/include/helper.h -arch/um/include/hostaudio.h -arch/um/include/init.h -arch/um/include/initrd.h -arch/um/include/irq_kern.h -arch/um/include/irq_user.h -arch/um/include/kern.h -arch/um/include/kern_util.h -arch/um/include/line.h -arch/um/include/Makefile -arch/um/include/mconsole.h -arch/um/include/mconsole_kern.h -arch/um/include/mem.h -arch/um/include/mem_user.h -arch/um/include/mode.h -arch/um/include/mode_kern.h -arch/um/include/net_kern.h -arch/um/include/net_user.h -arch/um/include/os.h -arch/um/include/process.h -arch/um/include/ptrace_user.h -arch/um/include/sigcontext.h -arch/um/include/sigio.h -arch/um/include/signal_kern.h -arch/um/include/signal_user.h -arch/um/include/skas_ptrace.h -arch/um/include/syscall_user.h -arch/um/include/sysdep-i386/checksum.h -arch/um/include/sysdep-i386/frame.h -arch/um/include/sysdep-i386/frame_kern.h -arch/um/include/sysdep-i386/frame_user.h -arch/um/include/sysdep-i386/ptrace.h -arch/um/include/sysdep-i386/ptrace_user.h -arch/um/include/sysdep-i386/sigcontext.h -arch/um/include/sysdep-i386/syscalls.h -arch/um/include/sysdep-ia64/ptrace.h -arch/um/include/sysdep-ia64/sigcontext.h -arch/um/include/sysdep-ia64/syscalls.h -arch/um/include/sysdep-ppc/ptrace.h -arch/um/include/sysdep-ppc/sigcontext.h -arch/um/include/sysdep-ppc/syscalls.h -arch/um/include/sysrq.h -arch/um/include/tempfile.h -arch/um/include/time_user.h -arch/um/include/tlb.h -arch/um/include/ubd_user.h -arch/um/include/umid.h -arch/um/include/uml_uaccess.h -arch/um/include/um_mmu.h -arch/um/include/umn.h -arch/um/include/um_uaccess.h -arch/um/include/user.h -arch/um/include/user_util.h -arch/um/kernel/checksum.c -arch/um/kernel/config.c.in -arch/um/kernel/exec_kern.c -arch/um/kernel/exitcode.c -arch/um/kernel/frame.c -arch/um/kernel/frame_kern.c -arch/um/kernel/gmon_syms.c -arch/um/kernel/gprof_syms.c -arch/um/kernel/helper.c -arch/um/kernel/initrd_kern.c -arch/um/kernel/initrd_user.c -arch/um/kernel/init_task.c -arch/um/kernel/irq.c -arch/um/kernel/irq_user.c -arch/um/kernel/ksyms.c -arch/um/kernel/Makefile -arch/um/kernel/mem.c -arch/um/kernel/mem_user.c -arch/um/kernel/mprot.h -arch/um/kernel/process.c -arch/um/kernel/process_kern.c -arch/um/kernel/ptrace.c -arch/um/kernel/reboot.c -arch/um/kernel/resource.c -arch/um/kernel/sigio_kern.c -arch/um/kernel/sigio_user.c -arch/um/kernel/signal_kern.c -arch/um/kernel/signal_user.c -arch/um/kernel/skas/exec_kern.c -arch/um/kernel/skas/exec_user.c -arch/um/kernel/skas/include/mmu.h -arch/um/kernel/skas/include/mode.h -arch/um/kernel/skas/include/mode_kern.h -arch/um/kernel/skas/include/proc_mm.h -arch/um/kernel/skas/include/ptrace-skas.h -arch/um/kernel/skas/include/skas.h -arch/um/kernel/skas/include/uaccess.h -arch/um/kernel/skas/Makefile -arch/um/kernel/skas/mem.c -arch/um/kernel/skas/mem_user.c -arch/um/kernel/skas/mmu.c -arch/um/kernel/skas/process.c -arch/um/kernel/skas/process_kern.c -arch/um/kernel/skas/syscall_kern.c -arch/um/kernel/skas/syscall_user.c -arch/um/kernel/skas/sys-i386/Makefile -arch/um/kernel/skas/sys-i386/sigcontext.c -arch/um/kernel/skas/time.c -arch/um/kernel/skas/tlb.c -arch/um/kernel/skas/trap_user.c -arch/um/kernel/skas/util/Makefile -arch/um/kernel/skas/util/mk_ptregs.c -arch/um/kernel/smp.c -arch/um/kernel/syscall_kern.c -arch/um/kernel/sys_call_table.c -arch/um/kernel/syscall_user.c -arch/um/kernel/sysrq.c -arch/um/kernel/tempfile.c -arch/um/kernel/time.c -arch/um/kernel/time_kern.c -arch/um/kernel/tlb.c -arch/um/kernel/trap_kern.c -arch/um/kernel/trap_user.c -arch/um/kernel/tt/exec_kern.c -arch/um/kernel/tt/exec_user.c -arch/um/kernel/tt/gdb.c -arch/um/kernel/tt/gdb_kern.c -arch/um/kernel/tt/include/debug.h -arch/um/kernel/tt/include/mmu.h -arch/um/kernel/tt/include/mode.h -arch/um/kernel/tt/include/mode_kern.h -arch/um/kernel/tt/include/ptrace-tt.h -arch/um/kernel/tt/include/tt.h -arch/um/kernel/tt/include/uaccess.h -arch/um/kernel/tt/ksyms.c -arch/um/kernel/tt/Makefile -arch/um/kernel/tt/mem.c -arch/um/kernel/tt/mem_user.c -arch/um/kernel/tt/process_kern.c -arch/um/kernel/tt/ptproxy/Makefile -arch/um/kernel/tt/ptproxy/proxy.c -arch/um/kernel/tt/ptproxy/ptproxy.h -arch/um/kernel/tt/ptproxy/ptrace.c -arch/um/kernel/tt/ptproxy/sysdep.c -arch/um/kernel/tt/ptproxy/sysdep.h -arch/um/kernel/tt/ptproxy/wait.c -arch/um/kernel/tt/ptproxy/wait.h -arch/um/kernel/tt/syscall_kern.c -arch/um/kernel/tt/syscall_user.c -arch/um/kernel/tt/sys-i386/Makefile -arch/um/kernel/tt/sys-i386/sigcontext.c -arch/um/kernel/tt/time.c -arch/um/kernel/tt/tlb.c -arch/um/kernel/tt/tracer.c -arch/um/kernel/tt/trap_user.c -arch/um/kernel/tt/uaccess_user.c -arch/um/kernel/tt/unmap.c -arch/um/kernel/tty_log.c -arch/um/kernel/uaccess_user.c -arch/um/kernel/um_arch.c -arch/um/kernel/umid.c -arch/um/kernel/user_syms.c -arch/um/kernel/user_util.c -arch/um/link.ld.in -arch/um/main.c -arch/um/Makefile -arch/um/Makefile-i386 -arch/um/Makefile-ia64 -arch/um/Makefile-os-Linux -arch/um/Makefile-ppc -arch/um/Makefile-skas -arch/um/Makefile-tt -arch/um/os-Linux/drivers/etap.h -arch/um/os-Linux/drivers/ethertap_kern.c -arch/um/os-Linux/drivers/ethertap_user.c -arch/um/os-Linux/drivers/Makefile -arch/um/os-Linux/drivers/tuntap.h -arch/um/os-Linux/drivers/tuntap_kern.c -arch/um/os-Linux/drivers/tuntap_user.c -arch/um/os-Linux/file.c -arch/um/os-Linux/include/file.h -arch/um/os-Linux/Makefile -arch/um/os-Linux/process.c -arch/um/os-Linux/tty.c -arch/um/sys-i386/bugs.c -arch/um/sys-i386/checksum.S -arch/um/sys-i386/fault.c -arch/um/sys-i386/ksyms.c -arch/um/sys-i386/ldt.c -arch/um/sys-i386/Makefile -arch/um/sys-i386/ptrace.c -arch/um/sys-i386/ptrace_user.c -arch/um/sys-i386/sigcontext.c -arch/um/sys-i386/syscalls.c -arch/um/sys-i386/sysrq.c -arch/um/sys-i386/util/Makefile -arch/um/sys-i386/util/mk_sc.c -arch/um/sys-i386/util/mk_thread_kern.c -arch/um/sys-i386/util/mk_thread_user.c -arch/um/sys-ia64/Makefile -arch/um/sys-ppc/Makefile -arch/um/sys-ppc/misc.S -arch/um/sys-ppc/miscthings.c -arch/um/sys-ppc/ptrace.c -arch/um/sys-ppc/ptrace_user.c -arch/um/sys-ppc/sigcontext.c -arch/um/sys-ppc/sysrq.c -arch/um/util/Makefile -arch/um/util/mk_constants_kern.c -arch/um/util/mk_constants_user.c -arch/um/util/mk_task_kern.c -arch/um/util/mk_task_user.c -CREDITS -Documentation/Configure.help -drivers/char/Makefile -drivers/char/tty_io.c -drivers/net/setup.c -include/asm-i386/hardirq.h -include/asm-um/a.out.h -include/asm-um/archparam-i386.h -include/asm-um/archparam-ppc.h -include/asm-um/arch-signal-i386.h -include/asm-um/atomic.h -include/asm-um/bitops.h -include/asm-um/boot.h -include/asm-um/bugs.h -include/asm-um/byteorder.h -include/asm-um/cache.h -include/asm-um/checksum.h -include/asm-um/cobalt.h -include/asm-um/current.h -include/asm-um/delay.h -include/asm-um/desc.h -include/asm-um/div64.h -include/asm-um/dma.h -include/asm-um/elf.h -include/asm-um/errno.h -include/asm-um/fcntl.h -include/asm-um/fixmap.h -include/asm-um/floppy.h -include/asm-um/hardirq.h -include/asm-um/hdreg.h -include/asm-um/highmem.h -include/asm-um/hw_irq.h -include/asm-um/ide.h -include/asm-um/init.h -include/asm-um/ioctl.h -include/asm-um/ioctls.h -include/asm-um/io.h -include/asm-um/ipcbuf.h -include/asm-um/ipc.h -include/asm-um/irq.h -include/asm-um/keyboard.h -include/asm-um/kmap_types.h -include/asm-um/linux_logo.h -include/asm-um/locks.h -include/asm-um/mca_dma.h -include/asm-um/mman.h -include/asm-um/mmu_context.h -include/asm-um/mmu.h -include/asm-um/module.h -include/asm-um/msgbuf.h -include/asm-um/mtrr.h -include/asm-um/namei.h -include/asm-um/page.h -include/asm-um/page_offset.h -include/asm-um/param.h -include/asm-um/pci.h -include/asm-um/pgalloc.h -include/asm-um/pgtable.h -include/asm-um/poll.h -include/asm-um/posix_types.h -include/asm-um/processor-generic.h -include/asm-um/processor-i386.h -include/asm-um/processor-ppc.h -include/asm-um/ptrace-generic.h -include/asm-um/ptrace-i386.h -include/asm-um/resource.h -include/asm-um/rwlock.h -include/asm-um/rwsem.h -include/asm-um/scatterlist.h -include/asm-um/segment.h -include/asm-um/semaphore.h -include/asm-um/sembuf.h -include/asm-um/serial.h -include/asm-um/shmbuf.h -include/asm-um/shmparam.h -include/asm-um/sigcontext-generic.h -include/asm-um/sigcontext-i386.h -include/asm-um/sigcontext-ppc.h -include/asm-um/siginfo.h -include/asm-um/signal.h -include/asm-um/smp.h -include/asm-um/smplock.h -include/asm-um/socket.h -include/asm-um/sockios.h -include/asm-um/softirq.h -include/asm-um/spinlock.h -include/asm-um/statfs.h -include/asm-um/stat.h -include/asm-um/string.h -include/asm-um/system-generic.h -include/asm-um/system-i386.h -include/asm-um/system-ppc.h -include/asm-um/termbits.h -include/asm-um/termios.h -include/asm-um/timex.h -include/asm-um/tlb.h -include/asm-um/types.h -include/asm-um/uaccess.h -include/asm-um/ucontext.h -include/asm-um/unaligned.h -include/asm-um/unistd.h -include/asm-um/user.h -include/asm-um/vga.h -include/asm-um/xor.h -include/linux/blk.h -include/linux/fs.h -include/linux/hostfs_fs_i.h -include/linux/hppfs_fs_i.h -include/linux/kernel.h -include/linux/kernel_stat.h -include/linux/mm.h -include/linux/proc_mm.h -include/linux/tty.h -init/do_mounts.c -kernel/panic.c -MAINTAINERS -Makefile -mm/Makefile -mm/mmap.c -mm/mprotect.c -mm/proc_mm.c -mm/slab.c diff --git a/lustre/kernel_patches/pc/vfs_intent-2.4.18-18-chaos65.pc b/lustre/kernel_patches/pc/vfs_intent-2.4.18-18-chaos65.pc deleted file mode 100644 index adb8100..0000000 --- a/lustre/kernel_patches/pc/vfs_intent-2.4.18-18-chaos65.pc +++ /dev/null @@ -1,12 +0,0 @@ -fs/exec.c -fs/dcache.c -fs/namespace.c -fs/namei.c -fs/open.c -fs/stat.c -fs/proc/base.c -include/linux/dcache.h -include/linux/fs.h -kernel/fork.c -kernel/exit.c -kernel/ksyms.c diff --git a/lustre/kernel_patches/pc/vfs_intent-2.4.20-hp.pc b/lustre/kernel_patches/pc/vfs_intent-2.4.20-hp.pc deleted file mode 100644 index f3375a3..0000000 --- a/lustre/kernel_patches/pc/vfs_intent-2.4.20-hp.pc +++ /dev/null @@ -1,14 +0,0 @@ -fs/exec.c -fs/dcache.c -fs/namespace.c -fs/namei.c -fs/nfsd/vfs.c -fs/open.c -fs/stat.c -fs/proc/base.c -include/linux/dcache.h -include/linux/fs.h -include/linux/fs_struct.h -kernel/ksyms.c -kernel/fork.c -kernel/exit.c diff --git a/lustre/kernel_patches/pc/vfs_intent_2.4.20_chaos.pc b/lustre/kernel_patches/pc/vfs_intent_2.4.20_chaos.pc deleted file mode 100644 index f3375a3..0000000 --- a/lustre/kernel_patches/pc/vfs_intent_2.4.20_chaos.pc +++ /dev/null @@ -1,14 +0,0 @@ -fs/exec.c -fs/dcache.c -fs/namespace.c -fs/namei.c -fs/nfsd/vfs.c -fs/open.c -fs/stat.c -fs/proc/base.c -include/linux/dcache.h -include/linux/fs.h -include/linux/fs_struct.h -kernel/ksyms.c -kernel/fork.c -kernel/exit.c diff --git a/lustre/kernel_patches/pc/vfs_mntcwd_2.5.72_rev1.pc b/lustre/kernel_patches/pc/vfs_mntcwd_2.5.72_rev1.pc deleted file mode 100644 index e69de29..0000000 diff --git a/lustre/kernel_patches/pc/vfs_races_2.5.72_rev1.pc b/lustre/kernel_patches/pc/vfs_races_2.5.72_rev1.pc deleted file mode 100644 index 95a8dfd..0000000 --- a/lustre/kernel_patches/pc/vfs_races_2.5.72_rev1.pc +++ /dev/null @@ -1,3 +0,0 @@ -fs/dcache.c -fs/namei.c -include/linux/dcache.h diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index b5518eb..d052288 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -128,43 +128,37 @@ void ll_lli_init(struct ll_inode_info *lli) int ll_process_log(char *mds, char *config, struct config_llog_instance *cfg) { struct lustre_cfg lcfg; - int dev; struct obd_device *obd; struct lustre_handle mdc_conn = {0, }; struct obd_export *exp; + char * name = "mdc_dev"; struct obd_uuid uuid = { "MDC_mount_UUID" }; int rc = 0; int err; ENTRY; - lcfg.lcfg_command = LCFG_ATTACH; - lcfg.lcfg_dev_name = "mdc_dev"; - lcfg.lcfg_dev_namelen = strlen(lcfg.lcfg_dev_name) + 1; + LCFG_INIT(lcfg, LCFG_ATTACH, name); lcfg.lcfg_inlbuf1 = "mdc"; lcfg.lcfg_inllen1 = strlen(lcfg.lcfg_inlbuf1) + 1; lcfg.lcfg_inlbuf2 = "mdc_dev_UUID"; lcfg.lcfg_inllen2 = strlen(lcfg.lcfg_inlbuf2) + 1; - dev = class_attach(&lcfg); - if (dev < 0) - GOTO(out, err = dev); - - obd = class_name2obd("mdc_dev"); - if (obd == NULL) - GOTO(out, err = -EINVAL); - - memset(&lcfg, 0, sizeof(lcfg)); + err = class_process_config(&lcfg); + if (err < 0) + GOTO(out, err); - lcfg.lcfg_command = LCFG_SETUP; - lcfg.lcfg_dev_name = "mdc_dev"; - lcfg.lcfg_dev_namelen = strlen(lcfg.lcfg_dev_name) + 1; + LCFG_INIT(lcfg, LCFG_SETUP, name); lcfg.lcfg_inlbuf1 = mds; lcfg.lcfg_inllen1 = strlen(lcfg.lcfg_inlbuf1) + 1; lcfg.lcfg_inlbuf2 = "NET_mds_facet_tcp_UUID"; lcfg.lcfg_inllen2 = strlen(lcfg.lcfg_inlbuf2) + 1; - err = class_setup(obd, &lcfg); + err = class_process_config(&lcfg); if (err < 0) GOTO(out, err); + obd = class_name2obd(name); + if (obd == NULL) + GOTO(out, err = -EINVAL); + err = obd_connect(&mdc_conn, obd, &uuid); if (err) { CERROR("cannot connect to %s: rc = %d\n", mds, err); @@ -180,21 +174,15 @@ int ll_process_log(char *mds, char *config, struct config_llog_instance *cfg) err = obd_disconnect(exp, 0); - memset(&lcfg, 0, sizeof(lcfg)); - lcfg.lcfg_command = LCFG_CLEANUP; - lcfg.lcfg_dev_name = "mdc_dev"; - err = class_cleanup(obd, &lcfg); + LCFG_INIT(lcfg, LCFG_CLEANUP, name); + err = class_process_config(&lcfg); if (err < 0) GOTO(out, err); - memset(&lcfg, 0, sizeof(lcfg)); - lcfg.lcfg_command = LCFG_DETACH; - lcfg.lcfg_dev_name = "mdc_dev"; - err = class_detach(obd, &lcfg); + LCFG_INIT(lcfg, LCFG_DETACH, name); + err = class_process_config(&lcfg); if (err < 0) GOTO(out, err); - - out: if (rc == 0) rc = err; @@ -448,11 +436,6 @@ void ll_put_super(struct super_block *sb) list_del(&sbi->ll_conn_chain); obd_disconnect(sbi->ll_osc_exp, 0); - /* Force sync on the MDS, and get the last_committed value to flush - * remaining RPCs from the sending queue on client. */ - if (!class_exp2obd(sbi->ll_mdc_exp)->obd_no_recov) - mdc_sync(sbi->ll_mdc_exp, NULL, NULL); - lprocfs_unregister_mountpoint(sbi); if (sbi->ll_proc_root) { lprocfs_remove(sbi->ll_proc_root); @@ -481,8 +464,7 @@ void ll_put_super(struct super_block *sb) OBD_ALLOC(cln_prof, len); sprintf(cln_prof, "%s-clean", sbi->ll_profile); - err = ll_process_log(sbi->ll_mds_uuid.uuid, cln_prof, - &cfg); + err = ll_process_log(sbi->ll_mds_uuid.uuid, cln_prof, &cfg); if (err < 0) CERROR("Unable to process log: %s\n", cln_prof); @@ -671,28 +653,23 @@ int ll_setattr_raw(struct inode *inode, struct iattr *attr) inode_setattr(inode, attr); } + /* We really need to get our PW lock before we change inode->i_size. + * If we don't we can race with other i_size updaters on our node, like + * ll_file_read. We can also race with i_size propogation to other + * nodes through dirtying and writeback of final cached pages. This + * last one is especially bad for racing o_append users on other + * nodes. */ if (ia_valid & ATTR_SIZE) { - struct ldlm_extent extent = { .start = 0, + struct ldlm_extent extent = { .start = attr->ia_size, .end = OBD_OBJECT_EOF }; struct lustre_handle lockh = { 0 }; int err, ast_flags = 0; /* XXX when we fix the AST intents to pass the discard-range * XXX extent, make ast_flags always LDLM_AST_DISCARD_DATA * XXX here. */ - - /* Writeback uses inode->i_size to determine how far out - * its cached pages go. ll_truncate gets a PW lock, canceling - * our lock, _after_ it has updated i_size. this can confuse - * - * We really need to get our PW lock before we change - * inode->i_size. If we don't we can race with other - * i_size updaters on our node, like ll_file_read. We - * can also race with i_size propogation to other - * nodes through dirtying and writeback of final cached - * pages. This last one is especially bad for racing - * o_append users on other nodes. */ if (extent.start == 0) ast_flags = LDLM_AST_DISCARD_DATA; + /* bug 1639: avoid write/truncate i_sem/DLM deadlock */ LASSERT(atomic_read(&inode->i_sem.count) <= 0); up(&inode->i_sem); @@ -820,11 +797,10 @@ int ll_statfs(struct super_block *sb, struct kstatfs *sfs) void dump_lsm(int level, struct lov_stripe_md *lsm) { - CDEBUG(level, "objid "LPX64", maxbytes "LPX64", magic %#08x, " - "stripe_size %#08x, offset %u, stripe_count %u\n", + CDEBUG(level, "objid "LPX64", maxbytes "LPX64", magic 0x%08X, " + "stripe_size %u, stripe_count %u\n", lsm->lsm_object_id, lsm->lsm_maxbytes, lsm->lsm_magic, - lsm->lsm_stripe_size, lsm->lsm_stripe_offset, - lsm->lsm_stripe_count); + lsm->lsm_stripe_size, lsm->lsm_stripe_count); } void ll_update_inode(struct inode *inode, struct mds_body *body, @@ -952,7 +928,7 @@ int ll_iocontrol(struct inode *inode, struct file *file, struct ptlrpc_request *req = NULL; int rc, flags = 0; ENTRY; - + switch(cmd) { case EXT3_IOC_GETFLAGS: { struct ll_fid fid; @@ -965,57 +941,62 @@ int ll_iocontrol(struct inode *inode, struct file *file, CERROR("failure %d inode %lu\n", rc, inode->i_ino); RETURN(-abs(rc)); } - + body = lustre_msg_buf(req->rq_repmsg, 0, sizeof(*body)); - + if (body->flags & S_APPEND) flags |= EXT3_APPEND_FL; if (body->flags & S_IMMUTABLE) flags |= EXT3_IMMUTABLE_FL; if (body->flags & S_NOATIME) flags |= EXT3_NOATIME_FL; - + ptlrpc_req_finished (req); - - RETURN( put_user(flags, (int *)arg) ); + + RETURN(put_user(flags, (int *)arg)); } case EXT3_IOC_SETFLAGS: { struct mdc_op_data op_data; struct iattr attr; - struct obdo oa; + struct obdo *oa; struct lov_stripe_md *lsm = ll_i2info(inode)->lli_smd; - - if ( get_user( flags, (int *)arg ) ) - RETURN( -EFAULT ); - + + if (get_user(flags, (int *)arg)) + RETURN(-EFAULT); + + oa = obdo_alloc(); + if (!oa) + RETURN(-ENOMEM); + ll_prepare_mdc_op_data(&op_data, inode, NULL, NULL, 0, 0); - + memset(&attr, 0x0, sizeof(attr)); attr.ia_attr_flags = flags; attr.ia_valid |= ATTR_ATTR_FLAG; - + rc = mdc_setattr(sbi->ll_mdc_exp, &op_data, &attr, NULL, 0, NULL, 0, &req); if (rc) { ptlrpc_req_finished(req); if (rc != -EPERM && rc != -EACCES) CERROR("mdc_setattr fails: rc = %d\n", rc); + obdo_free(oa); RETURN(rc); } ptlrpc_req_finished(req); - - memset(&oa, 0x0, sizeof(oa)); - oa.o_id = lsm->lsm_object_id; - oa.o_flags = flags; - oa.o_valid = OBD_MD_FLID | OBD_MD_FLFLAGS; - - rc = obd_setattr(sbi->ll_osc_exp, &oa, lsm, NULL); + + oa->o_id = lsm->lsm_object_id; + oa->o_flags = flags; + oa->o_valid = OBD_MD_FLID | OBD_MD_FLFLAGS; + + rc = obd_setattr(sbi->ll_osc_exp, oa, lsm, NULL); + obdo_free(oa); if (rc) { if (rc != -EPERM && rc != -EACCES) CERROR("mdc_setattr fails: rc = %d\n", rc); RETURN(rc); } - + if (flags & EXT3_APPEND_FL) inode->i_flags |= S_APPEND; else @@ -1028,13 +1009,13 @@ int ll_iocontrol(struct inode *inode, struct file *file, inode->i_flags |= S_NOATIME; else inode->i_flags &= ~S_NOATIME; - + RETURN(0); } default: RETURN(-ENOSYS); } - + RETURN(0); } diff --git a/lustre/lov/lov_internal.h b/lustre/lov/lov_internal.h index c1a412c..57ba1b3 100644 --- a/lustre/lov/lov_internal.h +++ b/lustre/lov/lov_internal.h @@ -7,9 +7,21 @@ * See the file COPYING in this distribution */ +#define LAP_MAGIC 8200 + +struct lov_async_page { + int lap_magic; + int lap_stripe; + obd_off lap_sub_offset; + void *lap_sub_cookie; + struct obd_async_page_ops *lap_caller_ops; + struct obd_async_page_ops *lap_caller_data; + obd_id lap_loi_id; +}; + /* lov_obd.c */ int lov_get_stripecnt(struct lov_obd *lov, int stripe_count); -int lov_alloc_memmd(struct lov_stripe_md **lsmp, int stripe_count); +int lov_alloc_memmd(struct lov_stripe_md **lsmp, int stripe_count, int pattern); void lov_free_memmd(struct lov_stripe_md **lsmp); /* lov_log.c */ @@ -35,12 +47,12 @@ int lov_log_add(struct obd_export *exp, /* lov_pack.c */ int lov_packmd(struct obd_export *exp, struct lov_mds_md **lmm, struct lov_stripe_md *lsm); -int lov_unpackmd(struct obd_export *exp, struct lov_stripe_md **lsm, - struct lov_mds_md *lmm, int lmmsize); +int lov_unpackmd(struct obd_export *exp, struct lov_stripe_md **lsmp, + struct lov_mds_md *lmm, int lmm_bytes); int lov_setstripe(struct obd_export *exp, - struct lov_stripe_md **lsmp, struct lov_mds_md *lump); + struct lov_stripe_md **lsmp, struct lov_user_md *lump); int lov_getstripe(struct obd_export *exp, - struct lov_stripe_md *lsm, struct lov_mds_md *lump); + struct lov_stripe_md *lsm, struct lov_user_md *lump); /* lproc_lov.c */ extern struct file_operations lov_proc_target_fops; diff --git a/lustre/obdfilter/filter_internal.h b/lustre/obdfilter/filter_internal.h index 070a932..a7fac7b 100644 --- a/lustre/obdfilter/filter_internal.h +++ b/lustre/obdfilter/filter_internal.h @@ -44,11 +44,17 @@ #define FILTER_MOUNT_RECOV 2 #define FILTER_RECOVERY_TIMEOUT (obd_timeout * 5 * HZ / 2) /* *waves hands* */ -/* Data stored per server at the head of the last_rcvd file. In le32 order. */ +#define FILTER_ROCOMPAT_SUPP (0) + +#define FILTER_INCOMPAT_GROUPS 0x00000001 +#define FILTER_INCOMPAT_SUPP (FILTER_INCOMPAT_GROUPS) + +/* Data stored per server at the head of the last_rcvd file. In le32 order. + * Try to keep this the same as mds_server_data so we might one day merge. */ struct filter_server_data { __u8 fsd_uuid[37]; /* server UUID */ __u8 fsd_uuid_padding[3]; /* unused */ - __u64 fsd_unused; + __u64 fsd_unused; /* was fsd_last_objid - don't use for now */ __u64 fsd_last_transno; /* last completed transaction ID */ __u64 fsd_mount_count; /* FILTER incarnation number */ __u32 fsd_feature_compat; /* compatible feature flags */ @@ -58,13 +64,11 @@ struct filter_server_data { __u32 fsd_client_start; /* start of per-client data area */ __u16 fsd_client_size; /* size of per-client data area */ __u16 fsd_subdir_count; /* number of subdirectories for objects */ - //__u64 fsd_catalog_oid; /* recovery catalog object id */ - //__u32 fsd_catalog_ogen; /* recovery catalog inode generation */ - //__u64 fsd_catalog_ogr; /* recovery catalog inode group */ + __u64 fsd_catalog_oid; /* recovery catalog object id */ + __u32 fsd_catalog_ogen; /* recovery catalog inode generation */ __u8 fsd_peeruuid[37]; /* UUID of MDS associated with this OST */ __u8 peer_padding[3]; /* unused */ - //__u8 fsd_padding[FILTER_LR_SERVER_SIZE - 140]; - __u8 fsd_padding[FILTER_LR_SERVER_SIZE - 128]; + __u8 fsd_padding[FILTER_LR_SERVER_SIZE - 140]; }; /* Data stored per client in the last_rcvd file. In le32 order. */ @@ -104,7 +108,8 @@ struct dentry *__filter_oa2dentry(struct obd_device *obd, struct obdo *oa, int filter_finish_transno(struct obd_export *, struct obd_trans_info *, int rc); __u64 filter_next_id(struct filter_obd *, struct obdo *); -int filter_update_server_data(struct obd_device *, struct file *, obd_gr, +__u64 filter_last_id(struct filter_obd *, struct obdo *); +int filter_update_server_data(struct obd_device *, struct file *, struct filter_server_data *, int force_sync); int filter_update_last_objid(struct obd_device *, obd_gr, int force_sync); int filter_common_setup(struct obd_device *, obd_count len, void *buf, diff --git a/lustre/obdfilter/filter_log.c b/lustre/obdfilter/filter_log.c index 3e451ce..520c4a3 100644 --- a/lustre/obdfilter/filter_log.c +++ b/lustre/obdfilter/filter_log.c @@ -37,76 +37,6 @@ #include "filter_internal.h" -#if 0 - -/* This is called from filter_setup() and should be single threaded */ -int filter_get_catalog(struct obd_device *obd) -{ - struct filter_obd *filter = &obd->u.filter; - struct filter_server_data *fsd = filter->fo_fsd; - struct obd_run_ctxt saved; - struct llog_handle *cathandle = NULL; - struct llog_logid logid; - struct llog_obd_ctxt *ctxt; - int rc; - ENTRY; - - push_ctxt(&saved, &obd->obd_ctxt, NULL); - if (fsd->fsd_catalog_oid) { - logid.lgl_oid = le64_to_cpu(fsd->fsd_catalog_oid); - logid.lgl_ogen = 0; - logid.lgl_ogr = le64_to_cpu(fsd->fsd_catalog_ogr); - rc = llog_create(obd, &cathandle, &logid, NULL); - if (rc) { - CERROR("error opening catalog "LPX64"/"LPX64": rc %d\n", - logid.lgl_oid, logid.lgl_ogr, - (int)PTR_ERR(cathandle)); - fsd->fsd_catalog_oid = 0; - fsd->fsd_catalog_ogr = 0; - RETURN(rc); - } - } - - if (!fsd->fsd_catalog_oid) { - rc = llog_create(obd, &cathandle, NULL, NULL); - if (rc) { - CERROR("error creating new catalog: rc %d\n", rc); - cathandle = ERR_PTR(rc); - GOTO(out, cathandle); - } - logid = cathandle->lgh_id; - fsd->fsd_catalog_oid = cpu_to_le64(logid.lgl_oid); - fsd->fsd_catalog_ogr = cpu_to_le64(logid.lgl_ogr); - rc = filter_update_server_data(obd, filter->fo_rcvd_filp, 1, - fsd, 0); - if (rc) { - CERROR("error writing new catalog to disk: rc %d\n",rc); - GOTO(out_handle, rc); - } - } - - rc = llog_init_handle(cathandle, LLOG_F_IS_CAT, &obd->obd_uuid); - if (rc) - GOTO(out_handle, rc); - OBD_ALLOC(ctxt, sizeof(*ctxt)); - if (!ctxt) - GOTO(out_handle, rc = -ENOMEM); - LASSERT(obd->obd_llog_ctxt == NULL); - obd->obd_llog_ctxt = ctxt; - obd->obd_llog_ctxt->loc_obd = obd; - obd->obd_llog_ctxt->loc_handles[LLOG_OBD_SZ_LOG_HANDLE] = cathandle; - -out: - pop_ctxt(&saved, &obd->obd_ctxt, NULL); - RETURN(rc); - -out_handle: - llog_close(cathandle); - goto out; -} -#endif - - int filter_log_sz_change(struct llog_handle *cathandle, struct ll_fid *mds_fid, __u32 io_epoch, diff --git a/lustre/ptlrpc/Makefile.mk b/lustre/ptlrpc/Makefile.mk index 2ed1d7a..a2801c8 100644 --- a/lustre/ptlrpc/Makefile.mk +++ b/lustre/ptlrpc/Makefile.mk @@ -8,4 +8,4 @@ include $(src)/../portals/Kernelenv obj-y += ptlrpc.o ptlrpc-objs := recover.o connection.o ptlrpc_module.o events.o service.o \ client.o niobuf.o pack_generic.o lproc_ptlrpc.o pinger.o \ - recov_thread.o ptlrpc_lib.o import.o llog_net.o + recov_thread.o ptlrpc_lib.o import.o llog_net.o llogd.o -- 1.8.3.1