Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ext2obd/ext2_obd.c, snap/snap.c: change parameters for create
[fs/lustre-release.git]
/
lustre
/
obdclass
/
class_obd.c
diff --git
a/lustre/obdclass/class_obd.c
b/lustre/obdclass/class_obd.c
index
a564ca7
..
09ae2e9
100644
(file)
--- a/
lustre/obdclass/class_obd.c
+++ b/
lustre/obdclass/class_obd.c
@@
-154,9
+154,9
@@
static int getdata(int len, void **data)
static int obd_class_ioctl (struct inode * inode, struct file * filp,
unsigned int cmd, unsigned long arg)
{
static int obd_class_ioctl (struct inode * inode, struct file * filp,
unsigned int cmd, unsigned long arg)
{
- int err, i_ino, dev;
struct obd_device *obddev;
struct obd_conn conn;
struct obd_device *obddev;
struct obd_conn conn;
+ int err, dev;
long int cli_id; /* connect, disconnect */
if (!inode)
long int cli_id; /* connect, disconnect */
if (!inode)
@@
-289,7
+289,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
/* have we attached a type to this device */
if ( !obddev->obd_type ) {
CDEBUG(D_IOCTL, "OBD Device %d has no type.\n", dev);
/* have we attached a type to this device */
if ( !obddev->obd_type ) {
CDEBUG(D_IOCTL, "OBD Device %d has no type.\n", dev);
- return -E
INVAL
;
+ return -E
NODEV
;
}
/* get main structure */
}
/* get main structure */
@@
-322,7
+322,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
/* have we attached a type to this device */
if ( !obddev->obd_type ) {
CDEBUG(D_IOCTL, "OBD Device %d has no type.\n", dev);
/* have we attached a type to this device */
if ( !obddev->obd_type ) {
CDEBUG(D_IOCTL, "OBD Device %d has no type.\n", dev);
- return -E
INVAL
;
+ return -E
NODEV
;
}
/* get main structure */
}
/* get main structure */
@@
-353,7
+353,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
int part_datalen;
void *part_data;
} input;
int part_datalen;
void *part_data;
} input;
- obdattr *src
oa, *tgtoa
;
+ obdattr *src
, *dst
;
if ( (!(obddev->obd_flags & OBD_SET_UP)) ||
(!(obddev->obd_flags & OBD_ATTACHED))) {
if ( (!(obddev->obd_flags & OBD_SET_UP)) ||
(!(obddev->obd_flags & OBD_ATTACHED))) {
@@
-374,23
+374,23
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
return -EOPNOTSUPP;
/* do the partition */
return -EOPNOTSUPP;
/* do the partition */
- CDEBUG(D_IOCTL, "Copy %d, type %s
src %ld tgt
%ld\n", dev,
- obddev->obd_type->typ_name, mvdata.
src, mvdata.tgt
);
+ CDEBUG(D_IOCTL, "Copy %d, type %s
dst %ld src
%ld\n", dev,
+ obddev->obd_type->typ_name, mvdata.
dst, mvdata.src
);
conn.oc_id = mvdata.conn_id;
conn.oc_id = mvdata.conn_id;
- src
oa
= obd_oa_fromid(&conn, mvdata.src);
- if ( !src
oa
)
+ src = obd_oa_fromid(&conn, mvdata.src);
+ if ( !src )
return -ENOENT;
return -ENOENT;
-
tgtoa = obd_oa_fromid(&conn, mvdata.tg
t);
- if ( !
tgtoa
) {
- obd_free_oa(src
oa
);
+
dst = obd_oa_fromid(&conn, mvdata.ds
t);
+ if ( !
dst
) {
+ obd_free_oa(src);
return -ENOENT;
}
return -ENOENT;
}
- err = OBP(obddev, copy)(&conn,
srcoa, tgtoa
);
+ err = OBP(obddev, copy)(&conn,
dst, src
);
- obd_free_oa(src
oa
);
- obd_free_oa(
tgtoa
);
+ obd_free_oa(src);
+ obd_free_oa(
dst
);
return err;
}
case OBD_IOC_MIGR: {
return err;
}
case OBD_IOC_MIGR: {
@@
-399,7
+399,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
int part_datalen;
void *part_data;
} input;
int part_datalen;
void *part_data;
} input;
- obdattr *src
oa, *tgtoa
;
+ obdattr *src
, *dst
;
if ( (!(obddev->obd_flags & OBD_SET_UP)) ||
(!(obddev->obd_flags & OBD_ATTACHED))) {
if ( (!(obddev->obd_flags & OBD_SET_UP)) ||
(!(obddev->obd_flags & OBD_ATTACHED))) {
@@
-422,27
+422,27
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
return -EOPNOTSUPP;
/* do the partition */
return -EOPNOTSUPP;
/* do the partition */
- CDEBUG(D_IOCTL, "Migrate %d, type %s conn %d src %ld
tg
t %ld\n",
+ CDEBUG(D_IOCTL, "Migrate %d, type %s conn %d src %ld
ds
t %ld\n",
dev, obddev->obd_type->typ_name, mvdata.conn_id,
dev, obddev->obd_type->typ_name, mvdata.conn_id,
- mvdata.src, mvdata.
tg
t);
+ mvdata.src, mvdata.
ds
t);
- if ( ! (src
oa
= obd_empty_oa()) )
+ if ( ! (src = obd_empty_oa()) )
return -ENOMEM;
return -ENOMEM;
- if ( ! (
tgtoa
= obd_empty_oa()) ) {
- obd_free_oa(src
oa
);
+ if ( ! (
dst
= obd_empty_oa()) ) {
+ obd_free_oa(src);
return -ENOMEM;
}
return -ENOMEM;
}
- src
oa
->i_ino = mvdata.src;
-
tgtoa->i_ino = mvdata.tg
t;
+ src->i_ino = mvdata.src;
+
dst->i_ino = mvdata.ds
t;
conn.oc_id = mvdata.conn_id;
conn.oc_id = mvdata.conn_id;
- err = OBP(obddev, migrate)(&conn,
tgtoa, srcoa
);
+ err = OBP(obddev, migrate)(&conn,
dst, src
);
- obd_free_oa(src
oa
);
- obd_free_oa(
tgtoa
);
+ obd_free_oa(src);
+ obd_free_oa(
dst
);
return err;
}
return err;
}
@@
-514,7
+514,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
if (!obddev->obd_type) {
CDEBUG(D_IOCTL, "OBD Device %d has no type.\n", dev);
EXIT;
if (!obddev->obd_type) {
CDEBUG(D_IOCTL, "OBD Device %d has no type.\n", dev);
EXIT;
- return -E
INVAL
;
+ return -E
NODEV
;
}
if ( !obddev->obd_type->typ_refcnt ) {
}
if ( !obddev->obd_type->typ_refcnt ) {
@@
-560,8
+560,9
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
if ( !OBT(obddev) || !OBP(obddev, connect) )
return -EOPNOTSUPP;
if ( !OBT(obddev) || !OBP(obddev, connect) )
return -EOPNOTSUPP;
- if (OBP(obddev, connect)(&conn))
- return -EINVAL;
+ err = OBP(obddev, connect)(&conn);
+ if ( err )
+ return err;
return copy_to_user((int *)arg, &conn.oc_id,
sizeof(int));
return copy_to_user((int *)arg, &conn.oc_id,
sizeof(int));
@@
-570,7
+571,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
/* frees data structures */
/* has this minor been registered? */
if (!obddev->obd_type)
/* frees data structures */
/* has this minor been registered? */
if (!obddev->obd_type)
- return -E
INVAL
;
+ return -E
NODEV
;
get_user(cli_id, (int *) arg);
conn.oc_id = cli_id;
get_user(cli_id, (int *) arg);
conn.oc_id = cli_id;
@@
-587,7
+588,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
* superblock that it needs. */
/* has this minor been registered? */
if (!obddev->obd_type)
* superblock that it needs. */
/* has this minor been registered? */
if (!obddev->obd_type)
- return -E
INVAL
;
+ return -E
NODEV
;
if (!obddev->u.ext2.ext2_sb || !obddev->u.ext2.ext2_sb->s_dev) {
CDEBUG(D_IOCTL, "fatal: device not initialized.\n");
if (!obddev->u.ext2.ext2_sb || !obddev->u.ext2.ext2_sb->s_dev) {
CDEBUG(D_IOCTL, "fatal: device not initialized.\n");
@@
-604,6
+605,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
}
case OBD_IOC_CREATE: {
struct oic_create_s foo;
}
case OBD_IOC_CREATE: {
struct oic_create_s foo;
+ objid id;
if ( copy_from_user(&foo, (const void *)arg, sizeof(foo)) )
return -EFAULT;
if ( copy_from_user(&foo, (const void *)arg, sizeof(foo)) )
return -EFAULT;
@@
-619,14
+621,15
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
if ( !OBT(obddev) || !OBP(obddev, create) )
return -EOPNOTSUPP;
if ( !OBT(obddev) || !OBP(obddev, create) )
return -EOPNOTSUPP;
-
i_ino = OBP(obddev, create)(&conn, foo.prealloc, &err
);
+
err = OBP(obddev, create)(&conn, foo.prealloc, &id
);
if (err) {
CDEBUG(D_IOCTL, "create: obd_inode_new failure\n");
/* 0 is the only error value */
if (err) {
CDEBUG(D_IOCTL, "create: obd_inode_new failure\n");
/* 0 is the only error value */
- return put_user(0, (int *) arg);
+ put_user(0, (int *) arg);
+ return err;
}
}
- return put_user(i
_ino
, (int *) arg);
+ return put_user(i
d
, (int *) arg);
}
case OBD_IOC_DESTROY: {
struct destroy_s {
}
case OBD_IOC_DESTROY: {
struct destroy_s {
@@
-640,7
+643,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
/* has this minor been registered? */
if (!obddev->obd_type)
/* has this minor been registered? */
if (!obddev->obd_type)
- return -E
INVAL
;
+ return -E
NODEV
;
copy_from_user(&destroy, (int *)arg, sizeof(struct destroy_s));
if ( !OBT(obddev) || !OBP(obddev, destroy) )
copy_from_user(&destroy, (int *)arg, sizeof(struct destroy_s));
if ( !OBT(obddev) || !OBP(obddev, destroy) )
@@
-661,7
+664,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
/* has this minor been registered? */
if (!obddev->obd_type)
/* has this minor been registered? */
if (!obddev->obd_type)
- return -E
INVAL
;
+ return -E
NODEV
;
err = copy_from_user(&foo, (int *)arg, sizeof(foo));
if (err)
err = copy_from_user(&foo, (int *)arg, sizeof(foo));
if (err)
@@
-765,7
+768,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
/* has this minor been registered? */
if (!obddev->obd_type)
/* has this minor been registered? */
if (!obddev->obd_type)
- return -E
INVAL
;
+ return -E
NODEV
;
err = copy_from_user(&prealloc, (int *)arg, sizeof(prealloc));
if (err)
err = copy_from_user(&prealloc, (int *)arg, sizeof(prealloc));
if (err)
@@
-795,7
+798,7
@@
static int obd_class_ioctl (struct inode * inode, struct file * filp,
/* has this minor been registered? */
if (!obddev->obd_type)
/* has this minor been registered? */
if (!obddev->obd_type)
- return -E
INVAL
;
+ return -E
NODEV
;
tmp = (void *)arg + sizeof(unsigned int);
get_user(conn_id, (int *) arg);
tmp = (void *)arg + sizeof(unsigned int);
get_user(conn_id, (int *) arg);