From e971ce1e4ce4559a7f8993adf9da59d331fb0417 Mon Sep 17 00:00:00 2001 From: braam Date: Mon, 5 Nov 2001 22:20:52 +0000 Subject: [PATCH] If you free a string ... it can cost a lot of time. --- lustre/demos/config.sh | 1 + lustre/include/linux/obdfs.h | 1 + lustre/include/linux/obdo.h | 9 --------- lustre/obdclass/class_obd.c | 12 ++++++------ lustre/obdclass/obdcontrol | 3 +-- 5 files changed, 9 insertions(+), 17 deletions(-) diff --git a/lustre/demos/config.sh b/lustre/demos/config.sh index 57c713d..5a5140d 100644 --- a/lustre/demos/config.sh +++ b/lustre/demos/config.sh @@ -25,6 +25,7 @@ OBDMAJ=186 # If LOOPDEV is empty, then it is assumed that BASEDEV is a real block device # that doesn't mind being overwritten - don't use a partition with data on it!! +LOOPDEV="" BASEDEV="/dev/hda5" # The following are mount points for the filesystems during the test. diff --git a/lustre/include/linux/obdfs.h b/lustre/include/linux/obdfs.h index cd0b10e..ff959e2 100644 --- a/lustre/include/linux/obdfs.h +++ b/lustre/include/linux/obdfs.h @@ -221,6 +221,7 @@ static void inline obdfs_set_size (struct inode *inode, obd_size size) } /* obdfs_set_size */ + #define obd_down(mutex) { \ /* CDEBUG(D_INFO, "get lock\n"); */ \ obdfs_mutex_start = jiffies; \ diff --git a/lustre/include/linux/obdo.h b/lustre/include/linux/obdo.h index 1b456e9..c410354 100644 --- a/lustre/include/linux/obdo.h +++ b/lustre/include/linux/obdo.h @@ -83,15 +83,6 @@ static void inline obdfs_to_inode(struct inode *inode, struct obdo *oa) } } /* obdfs_to_inode */ -static void inline obdfs_set_size (struct inode *inode, obd_size size) -{ - inode->i_size = size; - inode->i_blocks = (inode->i_size + inode->i_sb->s_blocksize - 1) >> - inode->i_sb->s_blocksize_bits; - inode->i_bytes = inode->i_size & - ((1 << inode->i_sb->s_blocksize_bits) - 1); -} /* obdfs_set_size */ - #define NOLOCK 0 #define LOCKED 1 diff --git a/lustre/obdclass/class_obd.c b/lustre/obdclass/class_obd.c index 02518e1..bf57215 100644 --- a/lustre/obdclass/class_obd.c +++ b/lustre/obdclass/class_obd.c @@ -336,7 +336,6 @@ static int obd_class_ioctl (struct inode * inode, struct file * filp, int setup_rdev; void *setup_data; } *setup; - char *user_path; setup = tmp_buf; @@ -363,7 +362,6 @@ static int obd_class_ioctl (struct inode * inode, struct file * filp, EXIT; return err; } - user_path = setup->setup_data; /* get the attach data */ err = getdata(setup->setup_datalen, &setup->setup_data); @@ -372,11 +370,9 @@ static int obd_class_ioctl (struct inode * inode, struct file * filp, return err; } obddev->obd_rdev = setup->setup_rdev; - obddev->obd_user_name = user_path; + obddev->obd_user_name = (char *)setup->setup_data; /* do the setup */ - CDEBUG(D_PSDEV, "Setup %d, type %s device %x\n", dev, - obddev->obd_type->typ_name, setup->setup_rdev); if ( !OBT(obddev) || !OBP(obddev, setup) ) { obddev->obd_type->typ_refcnt++; CDEBUG(D_PSDEV, "Dev %d refcount now %d\n", @@ -389,6 +385,10 @@ static int obd_class_ioctl (struct inode * inode, struct file * filp, return 0; } + CDEBUG(D_PSDEV, "Setup %d, type %s device %x, %s, len %d\n", dev, + obddev->obd_type->typ_name, setup->setup_rdev, + obddev->obd_user_name, setup->setup_datalen); + err = OBP(obddev, setup)(obddev, 0, NULL); if ( err ) { @@ -401,7 +401,7 @@ static int obd_class_ioctl (struct inode * inode, struct file * filp, obddev->obd_flags |= OBD_SET_UP; EXIT; } - OBD_FREE(setup->setup_data, setup->setup_datalen); + // OBD_FREE(setup->setup_data, setup->setup_datalen); return err; } case OBD_IOC_CLEANUP: { diff --git a/lustre/obdclass/obdcontrol b/lustre/obdclass/obdcontrol index 2087f2e..f12a212 100755 --- a/lustre/obdclass/obdcontrol +++ b/lustre/obdclass/obdcontrol @@ -272,7 +272,6 @@ my $term, $attribs; # Get going.... -# $::device = "/dev/obd0" unless defined $::device; Device($::device); sub readl { @@ -1116,7 +1115,7 @@ sub Setup { printf "setting up %s, device %x\n", $arg, $::st->rdev(); if ( $arg ) { $data = $arg; - $datalen = 4 + length($arg)+1; # need null character also + $datalen = length($arg)+1; # need null character also } my $packed = pack("iip", $datalen, $::st->rdev(), $data); -- 1.8.3.1