From: eeb Date: Tue, 20 Aug 2002 19:41:35 +0000 (+0000) Subject: de-serialised getattr, brw test ioctls X-Git-Tag: 0.5.5~112 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=8d7b591b84c4160b5623bd45e865252992a63636;p=fs%2Flustre-release.git de-serialised getattr, brw test ioctls --- 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 */