Whamcloud - gitweb
* merged current b_devel
authoreeb <eeb>
Thu, 17 Jul 2003 13:04:56 +0000 (13:04 +0000)
committereeb <eeb>
Thu, 17 Jul 2003 13:04:56 +0000 (13:04 +0000)
lnet/include/linux/portals_compat25.h
lustre/kernel_patches/patches/dev_read_only_2.4.20-rh.patch
lustre/kernel_patches/pc/ext3-delete_thread-2.4.18.pc
lustre/mdc/mdc_internal.h
lustre/mds/mds_lib.c
lustre/mgmt/Makefile.am
lustre/mgmt/mgmt_svc.c
lustre/osc/osc_lib.c
lustre/portals/include/linux/portals_compat25.h
lustre/tests/runobdstat

index e28fbac..661d1ee 100644 (file)
@@ -1,13 +1,38 @@
+// XXX BUG 1511 -- remove this stanza and all callers when bug 1511 is resolved
+#if SPINLOCK_DEBUG
+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)) || defined(CONFIG_RH_2_4_20)
+#  define SIGNAL_MASK_ASSERT() \
+   LASSERT(current->sighand->siglock.magic == SPINLOCK_MAGIC)
+# else
+#  define SIGNAL_MASK_ASSERT() \
+   LASSERT(current->sigmask_lock.magic == SPINLOCK_MAGIC)
+# endif
+#else
+# define SIGNAL_MASK_ASSERT()
+#endif
+// XXX BUG 1511 -- remove this stanza and all callers when bug 1511 is resolved
+
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)) || defined(CONFIG_RH_2_4_20)
-# define SIGNAL_MASK_LOCK(task, flags)                              \
+# define SIGNAL_MASK_LOCK(task, flags)                                 \
   spin_lock_irqsave(&task->sighand->siglock, flags)
-# define SIGNAL_MASK_UNLOCK(task, flags)                            \
+# define SIGNAL_MASK_UNLOCK(task, flags)                               \
   spin_unlock_irqrestore(&task->sighand->siglock, flags)
 # define RECALC_SIGPENDING         recalc_sigpending()
 #else
-# define SIGNAL_MASK_LOCK(task, flags)                              \
+# define SIGNAL_MASK_LOCK(task, flags)                                 \
   spin_lock_irqsave(&task->sigmask_lock, flags)
-# define SIGNAL_MASK_UNLOCK(task, flags)                            \
+# define SIGNAL_MASK_UNLOCK(task, flags)                               \
   spin_unlock_irqrestore(&task->sigmask_lock, flags)
 # define RECALC_SIGPENDING         recalc_sigpending(current)
 #endif
+
+#if defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
+# define THREAD_NAME(comm, fmt, a...)                                  \
+       sprintf(comm, fmt "|%d", ## a, current->thread.extern_pid)
+#elif defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+# define THREAD_NAME(comm, fmt, a...)                                  \
+        sprintf(comm, fmt "|%d", ## a, current->thread.mode.tt.extern_pid)
+#else
+# define THREAD_NAME(comm, fmt, a...)                                   \
+       sprintf(comm, fmt, ## a)
+#endif
index 55057d9..1b589b9 100644 (file)
@@ -1,13 +1,10 @@
-
-
-
  drivers/block/blkpg.c  |   35 +++++++++++++++++++++++++++++++++++
  drivers/block/loop.c   |    3 +++
- drivers/ide/ide-disk.c |    5 ++++-
- 3 files changed, 42 insertions(+), 1 deletion(-)
+ drivers/ide/ide-disk.c |    5 +++++
+ 3 files changed, 43 insertions(+)
 
---- rh-2.4.20/drivers/block/blkpg.c~dev_read_only_2.4.20       2003-04-11 14:05:03.000000000 +0800
-+++ rh-2.4.20-root/drivers/block/blkpg.c       2003-04-12 13:11:31.000000000 +0800
+--- kernel-2.4.20-6chaos_18_7/drivers/block/blkpg.c~dev_read_only_2.4.20-rh    2003-05-15 21:12:48.000000000 -0600
++++ kernel-2.4.20-6chaos_18_7-braam/drivers/block/blkpg.c      2003-07-12 15:10:31.000000000 -0600
 @@ -297,3 +297,38 @@ int blk_ioctl(kdev_t dev, unsigned int c
  }
  
@@ -47,8 +44,8 @@
 +EXPORT_SYMBOL(dev_set_rdonly);
 +EXPORT_SYMBOL(dev_check_rdonly);
 +EXPORT_SYMBOL(dev_clear_rdonly);
---- rh-2.4.20/drivers/block/loop.c~dev_read_only_2.4.20        2003-04-11 14:05:08.000000000 +0800
-+++ rh-2.4.20-root/drivers/block/loop.c        2003-04-12 13:11:31.000000000 +0800
+--- kernel-2.4.20-6chaos_18_7/drivers/block/loop.c~dev_read_only_2.4.20-rh     2003-05-15 21:12:50.000000000 -0600
++++ kernel-2.4.20-6chaos_18_7-braam/drivers/block/loop.c       2003-07-12 15:10:31.000000000 -0600
 @@ -491,6 +491,9 @@ static int loop_make_request(request_que
        spin_unlock_irq(&lo->lo_lock);
  
                if (lo->lo_flags & LO_FLAGS_READ_ONLY)
                        goto err;
        } else if (rw == READA) {
---- rh-2.4.20/drivers/ide/ide-disk.c~dev_read_only_2.4.20      2003-04-11 14:04:53.000000000 +0800
-+++ rh-2.4.20-root/drivers/ide/ide-disk.c      2003-04-12 13:14:48.000000000 +0800
-@@ -381,7 +381,10 @@ static ide_startstop_t do_rw_disk (ide_d
-       if (IS_PDC4030_DRIVE)
-               return promise_rw_disk(drive, rq, block);
- #endif /* CONFIG_BLK_DEV_PDC4030 */
--
-+      if (rq->cmd == WRITE && dev_check_rdonly(rq->rq_dev)) {
-+              ide_end_request(1, HWGROUP(drive));
-+              return ide_stopped;
-+      }
+--- kernel-2.4.20-6chaos_18_7/drivers/ide/ide-disk.c~dev_read_only_2.4.20-rh   2003-05-15 21:13:09.000000000 -0600
++++ kernel-2.4.20-6chaos_18_7-braam/drivers/ide/ide-disk.c     2003-07-12 15:12:03.000000000 -0600
+@@ -371,6 +371,11 @@ ide_startstop_t __ide_do_rw_disk (ide_dr
+       if (driver_blocked)
+               panic("Request while ide driver is blocked?");
++      if (rq->cmd == WRITE && dev_check_rdonly(rq->rq_dev)) {
++              ide_end_request(1, HWGROUP(drive));
++              return ide_stopped;
++      }
++
        if (IDE_CONTROL_REG)
                hwif->OUTB(drive->ctl, IDE_CONTROL_REG);
  
index 5770132..1afa4d4 100644 (file)
@@ -1,3 +1,5 @@
 fs/ext3/super.c
+fs/ext3/file.c
+fs/ext3/inode.c
 include/linux/ext3_fs.h
 include/linux/ext3_fs_sb.h
index e39a0aa..49d85ab 100644 (file)
@@ -1,24 +1,25 @@
-void mds_pack_req_body(struct ptlrpc_request *);
-void mds_pack_rep_body(struct ptlrpc_request *);
-void mds_readdir_pack(struct ptlrpc_request *req, __u64 offset, __u32 size,
+void mdc_pack_req_body(struct ptlrpc_request *);
+void mdc_pack_rep_body(struct ptlrpc_request *);
+void mdc_readdir_pack(struct ptlrpc_request *req, __u64 offset, __u32 size,
                       obd_id ino, int type);
-void mds_getattr_pack(struct ptlrpc_request *req, int valid, int offset,
+void mdc_getattr_pack(struct ptlrpc_request *req, int valid, int offset,
                       int flags, struct mdc_op_data *data);
-void mds_setattr_pack(struct ptlrpc_request *req,
+void mdc_setattr_pack(struct ptlrpc_request *req,
                       struct mdc_op_data *data,
-                      struct iattr *iattr, void *ea, int ealen);
-void mds_create_pack(struct ptlrpc_request *req, int offset,
+                      struct iattr *iattr, void *ea, int ealen,
+                     void *ea2, int ea2len);
+void mdc_create_pack(struct ptlrpc_request *req, int offset,
                      struct mdc_op_data *op_data,
                      __u32 mode, __u64 rdev, __u32 uid, __u32 gid, __u64 time,
                      const void *data, int datalen);
-void mds_open_pack(struct ptlrpc_request *req, int offset,
+void mdc_open_pack(struct ptlrpc_request *req, int offset,
                    struct mdc_op_data *op_data,
                    __u32 mode, __u64 rdev, __u32 uid, __u32 gid, __u64 time,
                    __u32 flags, const void *data, int datalen);
-void mds_unlink_pack(struct ptlrpc_request *req, int offset,
+void mdc_unlink_pack(struct ptlrpc_request *req, int offset,
                      struct mdc_op_data *data);
-void mds_link_pack(struct ptlrpc_request *req, int offset,
+void mdc_link_pack(struct ptlrpc_request *req, int offset,
                    struct mdc_op_data *data);
-void mds_rename_pack(struct ptlrpc_request *req, int offset,
+void mdc_rename_pack(struct ptlrpc_request *req, int offset,
                      struct mdc_op_data *data,
                      const char *old, int oldlen, const char *new, int newlen);
index 8f16795..93ac300 100644 (file)
@@ -57,17 +57,15 @@ void mds_pack_inode2fid(struct ll_fid *fid, struct inode *inode)
         fid->f_type = (S_IFMT & inode->i_mode);
 }
 
+/* Note that we can copy all of the fields, just some will not be "valid" */
 void mds_pack_inode2body(struct mds_body *b, struct inode *inode)
 {
-        b->valid = OBD_MD_FLID | OBD_MD_FLATIME | OBD_MD_FLMTIME |
-                OBD_MD_FLCTIME | OBD_MD_FLSIZE | OBD_MD_FLBLOCKS |
-                OBD_MD_FLUID | OBD_MD_FLGID | OBD_MD_FLTYPE | OBD_MD_FLMODE |
-                OBD_MD_FLNLINK | OBD_MD_FLGENER;
+        b->valid = OBD_MD_FLID | OBD_MD_FLCTIME | OBD_MD_FLUID | OBD_MD_FLGID |
+                OBD_MD_FLTYPE | OBD_MD_FLMODE | OBD_MD_FLNLINK | OBD_MD_FLGENER;
 
-        /* The MDS file size isn't authoritative for regular files, so don't
-         * even pretend. */
-        if (S_ISREG(inode->i_mode))
-                b->valid &= ~(OBD_MD_FLSIZE | OBD_MD_FLBLOCKS);
+        if (!S_ISREG(inode->i_mode))
+                b->valid |= OBD_MD_FLSIZE | OBD_MD_FLBLOCKS | OBD_MD_FLATIME |
+                            OBD_MD_FLMTIME;
 
         b->ino = inode->i_ino;
         b->atime = LTIME_S(inode->i_atime);
@@ -80,10 +78,12 @@ void mds_pack_inode2body(struct mds_body *b, struct inode *inode)
         b->gid = inode->i_gid;
         b->flags = inode->i_flags;
         b->rdev = b->rdev;
-        b->nlink = inode->i_nlink;
+        /* Return the correct link count for orphan inodes */
+        b->nlink = mds_inode_is_orphan(inode) ? 0 : inode->i_nlink;
         b->generation = inode->i_generation;
         b->suppgid = -1;
 }
+
 /* unpacking */
 static int mds_setattr_unpack(struct ptlrpc_request *req, int offset,
                               struct mds_update_record *r)
@@ -92,8 +92,8 @@ static int mds_setattr_unpack(struct ptlrpc_request *req, int offset,
         struct mds_rec_setattr *rec;
         ENTRY;
 
-        rec = lustre_swab_reqbuf (req, offset, sizeof (*rec),
-                                  lustre_swab_mds_rec_setattr);
+        rec = lustre_swab_reqbuf(req, offset, sizeof(*rec),
+                                 lustre_swab_mds_rec_setattr);
         if (rec == NULL)
                 RETURN (-EFAULT);
 
@@ -120,9 +120,14 @@ static int mds_setattr_unpack(struct ptlrpc_request *req, int offset,
                 if (r->ur_eadata == NULL)
                         RETURN (-EFAULT);
                 r->ur_eadatalen = req->rq_reqmsg->buflens[offset + 1];
-        } else {
-                r->ur_eadata = NULL;
-                r->ur_eadatalen = 0;
+        }
+
+        if (req->rq_reqmsg->bufcount > offset + 2) {
+                r->ur_logcookies = lustre_msg_buf(req->rq_reqmsg, offset + 2,0);
+                if (r->ur_eadata == NULL)
+                        RETURN (-EFAULT);
+
+                r->ur_cookielen = req->rq_reqmsg->buflens[offset + 2];
         }
 
         RETURN(0);
@@ -172,9 +177,6 @@ static int mds_create_unpack(struct ptlrpc_request *req, int offset,
                 if (r->ur_tgt == NULL)
                         RETURN (-EFAULT);
                 r->ur_tgtlen = req->rq_reqmsg->buflens[offset + 2];
-        } else {
-                r->ur_tgt = NULL;
-                r->ur_tgtlen = 0;
         }
         RETURN(0);
 }
index a170791..f7307c8 100644 (file)
@@ -5,7 +5,7 @@
 
 DEFS=
 
-modulefs_DATA = mgmt_svc.o
-EXTRA_PROGRAMS = mgmt_svc
+modulefs_DATA = mgmt_svc.o mgmt_cli.o
+EXTRA_PROGRAMS = mgmt_svc mgmt_cli
 
 include $(top_srcdir)/Rules
index fd59ba1..5b1046f 100644 (file)
@@ -23,7 +23,7 @@
  */
 
 #define EXPORT_SYMTAB
-#define DEBUG_SUBSYSTEM S_RPC /* S_MGMT */
+#define DEBUG_SUBSYSTEM S_FILTER
 #include <linux/module.h>
 #include <linux/init.h>
 
 #define MGMT_NEVENTS     1024UL
 #define MGMT_NBUFS       128UL
 #define MGMT_BUFSIZE     8192
-#define MGMT_MAXREQSIZE  128
+#define MGMT_MAXREQSIZE  512
 #define MGMT_NUM_THREADS 4
 #define MGMT_DEVICE_NAME "mgmt"
 
 static int mgmt_initialized;
 static struct ptlrpc_service *mgmt_service;
 
-static int mgmt_connect(struct ptlrpc_request *req)
-{
-        int rc;
-        ENTRY;
-
-        rc = -EINVAL;
-        
-        RETURN(rc);
-}
-
 static int mgmt_ping(struct ptlrpc_request *req)
 {
+        /* handle_incoming_request will have already updated the export's
+         * last_request_time, so we don't need to do anything else.
+         */
         return lustre_pack_msg(0, NULL, NULL, &req->rq_replen, &req->rq_repmsg);
 }
 
@@ -67,7 +60,11 @@ static int mgmt_handler(struct ptlrpc_request *req)
                 break;
         case MGMT_CONNECT:
                 DEBUG_REQ(D_RPCTRACE, req, "connect");
-                rc = mgmt_connect(req);
+                rc = target_handle_connect(req, NULL /* no recovery handler */);
+                break;
+        case MGMT_DISCONNECT:
+                DEBUG_REQ(D_RPCTRACE, req, "disconnect");
+                rc = target_handle_disconnect(req);
                 break;
         default:
                 DEBUG_REQ(D_RPCTRACE, req, "UNKNOWN OP");
@@ -114,7 +111,7 @@ static int mgmt_setup(struct obd_device *obd, obd_count len, void *buf)
         RETURN(0);
 }
 
-static int mgmt_cleanup(struct obd_device *obd, int force, int failover)
+static int mgmt_cleanup(struct obd_device *obd, int flags)
 {
         ENTRY;
         
@@ -129,9 +126,11 @@ static int mgmt_cleanup(struct obd_device *obd, int force, int failover)
 }
 
 static struct obd_ops mgmt_obd_ops = {
-        o_owner:   THIS_MODULE,
-        o_setup:   mgmt_setup,
-        o_cleanup: mgmt_cleanup
+        o_owner:      THIS_MODULE,
+        o_setup:      mgmt_setup,
+        o_cleanup:    mgmt_cleanup,
+        o_connect:    class_connect,
+        o_disconnect: class_disconnect
 };
 
 static int __init mgmt_init(void)
index aa04a1a..c8cd6ad 100644 (file)
@@ -34,8 +34,7 @@ static kdev_t path2dev(char *path)
 {
         struct dentry *dentry;
         struct nameidata nd;
-        kdev_t dev;
-        KDEVT_VAL(dev, 0);
+        kdev_t dev = KDEVT_INIT(0);
 
         if (!path_init(path, LOOKUP_FOLLOW, &nd))
                 return 0;
index e28fbac..661d1ee 100644 (file)
@@ -1,13 +1,38 @@
+// XXX BUG 1511 -- remove this stanza and all callers when bug 1511 is resolved
+#if SPINLOCK_DEBUG
+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)) || defined(CONFIG_RH_2_4_20)
+#  define SIGNAL_MASK_ASSERT() \
+   LASSERT(current->sighand->siglock.magic == SPINLOCK_MAGIC)
+# else
+#  define SIGNAL_MASK_ASSERT() \
+   LASSERT(current->sigmask_lock.magic == SPINLOCK_MAGIC)
+# endif
+#else
+# define SIGNAL_MASK_ASSERT()
+#endif
+// XXX BUG 1511 -- remove this stanza and all callers when bug 1511 is resolved
+
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)) || defined(CONFIG_RH_2_4_20)
-# define SIGNAL_MASK_LOCK(task, flags)                              \
+# define SIGNAL_MASK_LOCK(task, flags)                                 \
   spin_lock_irqsave(&task->sighand->siglock, flags)
-# define SIGNAL_MASK_UNLOCK(task, flags)                            \
+# define SIGNAL_MASK_UNLOCK(task, flags)                               \
   spin_unlock_irqrestore(&task->sighand->siglock, flags)
 # define RECALC_SIGPENDING         recalc_sigpending()
 #else
-# define SIGNAL_MASK_LOCK(task, flags)                              \
+# define SIGNAL_MASK_LOCK(task, flags)                                 \
   spin_lock_irqsave(&task->sigmask_lock, flags)
-# define SIGNAL_MASK_UNLOCK(task, flags)                            \
+# define SIGNAL_MASK_UNLOCK(task, flags)                               \
   spin_unlock_irqrestore(&task->sigmask_lock, flags)
 # define RECALC_SIGPENDING         recalc_sigpending(current)
 #endif
+
+#if defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
+# define THREAD_NAME(comm, fmt, a...)                                  \
+       sprintf(comm, fmt "|%d", ## a, current->thread.extern_pid)
+#elif defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+# define THREAD_NAME(comm, fmt, a...)                                  \
+        sprintf(comm, fmt "|%d", ## a, current->thread.mode.tt.extern_pid)
+#else
+# define THREAD_NAME(comm, fmt, a...)                                   \
+       sprintf(comm, fmt, ## a)
+#endif
index 886ce8f..ad60d6d 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/sh
 PATH=`dirname $0`/../utils:$PATH
 
-obdstat filter 1 | while read LINE; do
+llobdstat.pl $1 1 | while read LINE; do
        echo "`date +s`: $LINE"
-       [ "$1" ] && echo "`date +s`: $LINE" >> $1
+       [ "$2" ] && echo "`date +s`: $LINE" >> $2
 done