From: braam Date: Tue, 25 Sep 2001 06:21:18 +0000 (+0000) Subject: fix setup method for ext2 obd devices X-Git-Tag: v1_7_100~6082 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=8f683c05db2320fe40736bdd09779aa646aff13b;hp=7a30b5ccf77a04e2ecd591c588f01983b528ab14 fix setup method for ext2 obd devices remove stuff from Makefile that didn't work --- diff --git a/lustre/include/linux/obd_class.h b/lustre/include/linux/obd_class.h index 2df81c8..50e9d82 100644 --- a/lustre/include/linux/obd_class.h +++ b/lustre/include/linux/obd_class.h @@ -99,7 +99,9 @@ struct obd_conn { uint32_t oc_id; }; -typedef union { +typedef struct { + uint32_t len; + char * name; struct dentry *dentry; /* file system obd device names */ __u8 _uuid[16]; /* uuid obd device names */ } obd_devicename; diff --git a/lustre/obdclass/class_obd.c b/lustre/obdclass/class_obd.c index 37072fa..68fa910 100644 --- a/lustre/obdclass/class_obd.c +++ b/lustre/obdclass/class_obd.c @@ -162,19 +162,24 @@ static int getdata(int len, void **data) static int obd_devicename_from_path(obd_devicename* whoami, - char* user_string) + uint32_t klen, + char* kname) { - struct nameidata nd; - int err; - - err = user_path_walk(user_string, &nd); - if (!err) { - whoami->dentry = nd.dentry; - path_release(&nd); - } - return err; + whoami->len = klen; + whoami->name = kname; + +/* err = user_path_walk(user_string, &nd); */ +/* if (!err) { */ +/* whoami->dentry = nd.dentry; */ +/* path_release(&nd); */ +/* } */ +/* return err; */ + + return 0; } + + /* to control /dev/obdNNN */ static int obd_class_ioctl (struct inode * inode, struct file * filp, unsigned int cmd, unsigned long arg) @@ -332,7 +337,7 @@ static int obd_class_ioctl (struct inode * inode, struct file * filp, case OBD_IOC_SETUP: { struct ioc_setup { int setup_datalen; - char *setup_data; + void *setup_data; } *setup; setup = tmp_buf; @@ -363,8 +368,16 @@ static int obd_class_ioctl (struct inode * inode, struct file * filp, return err; } + /* get the attach data */ + err = getdata(setup->setup_datalen, &setup->setup_data); + if ( err ) { + EXIT; + return err; + } + err = obd_devicename_from_path(&(obddev->obd_fsname), - (char*) setup->setup_data); + setup->setup_datalen, + (char*) setup->setup_data); if (err) { memset(&(obddev->obd_fsname), 0, sizeof(obd_devicename)); EXIT;