From 8d7b591b84c4160b5623bd45e865252992a63636 Mon Sep 17 00:00:00 2001 From: eeb Date: Tue, 20 Aug 2002 19:41:35 +0000 Subject: [PATCH] de-serialised getattr, brw test ioctls --- lustre/obdclass/class_obd.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lustre/obdclass/class_obd.c b/lustre/obdclass/class_obd.c index 0bac970..7c31246 100644 --- a/lustre/obdclass/class_obd.c +++ b/lustre/obdclass/class_obd.c @@ -104,10 +104,21 @@ static int obd_class_ioctl (struct inode * inode, struct file * filp, struct lustre_handle conn; int rw = OBD_BRW_READ; int err = 0; + int serialised = 0; ENTRY; - down(&obd_conf_sem); - + switch (cmd) + { + case OBD_IOC_BRW_WRITE: + case OBD_IOC_BRW_READ: + case OBD_IOC_GETATTR: + break; + default: + down(&obd_conf_sem); + serialised = 1; + break; + } + if (!obd && cmd != OBD_IOC_DEVICE && cmd != TCGETS && cmd != OBD_IOC_LIST && cmd != OBD_IOC_NAME2DEV && cmd != OBD_IOC_NEWDEV) { @@ -558,7 +569,8 @@ static int obd_class_ioctl (struct inode * inode, struct file * filp, out: if (buf) OBD_FREE(buf, len); - up(&obd_conf_sem); + if (serialised) + up(&obd_conf_sem); RETURN(err); } /* obd_class_ioctl */ -- 1.8.3.1