git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
patch-2_6_7-vs1_9_1_12
[linux-2.6.git]
/
drivers
/
md
/
dm-ioctl.c
diff --git
a/drivers/md/dm-ioctl.c
b/drivers/md/dm-ioctl.c
index
26e0728
..
e1703f7
100644
(file)
--- a/
drivers/md/dm-ioctl.c
+++ b/
drivers/md/dm-ioctl.c
@@
-46,7
+46,7
@@
struct vers_iter {
static struct list_head _name_buckets[NUM_BUCKETS];
static struct list_head _uuid_buckets[NUM_BUCKETS];
static struct list_head _name_buckets[NUM_BUCKETS];
static struct list_head _uuid_buckets[NUM_BUCKETS];
-void dm_hash_remove_all(void);
+
static
void dm_hash_remove_all(void);
/*
* Guards access to both hash tables.
/*
* Guards access to both hash tables.
@@
-61,7
+61,7
@@
static void init_buckets(struct list_head *buckets)
INIT_LIST_HEAD(buckets + i);
}
INIT_LIST_HEAD(buckets + i);
}
-int dm_hash_init(void)
+
static
int dm_hash_init(void)
{
init_buckets(_name_buckets);
init_buckets(_uuid_buckets);
{
init_buckets(_name_buckets);
init_buckets(_uuid_buckets);
@@
-69,7
+69,7
@@
int dm_hash_init(void)
return 0;
}
return 0;
}
-void dm_hash_exit(void)
+
static
void dm_hash_exit(void)
{
dm_hash_remove_all();
devfs_remove(DM_DIR);
{
dm_hash_remove_all();
devfs_remove(DM_DIR);
@@
-195,7
+195,7
@@
static int unregister_with_devfs(struct hash_cell *hc)
* The kdev_t and uuid of a device can never change once it is
* initially inserted.
*/
* The kdev_t and uuid of a device can never change once it is
* initially inserted.
*/
-int dm_hash_insert(const char *name, const char *uuid, struct mapped_device *md)
+
static
int dm_hash_insert(const char *name, const char *uuid, struct mapped_device *md)
{
struct hash_cell *cell;
{
struct hash_cell *cell;
@@
-234,7
+234,7
@@
int dm_hash_insert(const char *name, const char *uuid, struct mapped_device *md)
return -EBUSY;
}
return -EBUSY;
}
-void __hash_remove(struct hash_cell *hc)
+
static
void __hash_remove(struct hash_cell *hc)
{
/* remove from the dev hash */
list_del(&hc->uuid_list);
{
/* remove from the dev hash */
list_del(&hc->uuid_list);
@@
-246,7
+246,7
@@
void __hash_remove(struct hash_cell *hc)
free_cell(hc);
}
free_cell(hc);
}
-void dm_hash_remove_all(void)
+
static
void dm_hash_remove_all(void)
{
int i;
struct hash_cell *hc;
{
int i;
struct hash_cell *hc;
@@
-262,7
+262,7
@@
void dm_hash_remove_all(void)
up_write(&_hash_lock);
}
up_write(&_hash_lock);
}
-int dm_hash_rename(const char *old, const char *new)
+
static
int dm_hash_rename(const char *old, const char *new)
{
char *new_name, *old_name;
struct hash_cell *hc;
{
char *new_name, *old_name;
struct hash_cell *hc;
@@
-377,7
+377,7
@@
static int list_devices(struct dm_ioctl *param, size_t param_size)
for (i = 0; i < NUM_BUCKETS; i++) {
list_for_each_entry (hc, _name_buckets + i, name_list) {
needed += sizeof(struct dm_name_list);
for (i = 0; i < NUM_BUCKETS; i++) {
list_for_each_entry (hc, _name_buckets + i, name_list) {
needed += sizeof(struct dm_name_list);
- needed += strlen(hc->name);
+ needed += strlen(hc->name)
+ 1
;
needed += ALIGN_MASK;
}
}
needed += ALIGN_MASK;
}
}
@@
-417,9
+417,9
@@
static int list_devices(struct dm_ioctl *param, size_t param_size)
return 0;
}
return 0;
}
-static void list_version_get_needed(struct target_type *tt, void *param)
+static void list_version_get_needed(struct target_type *tt, void *
needed_
param)
{
{
-
int *needed =
param;
+
size_t *needed = needed_
param;
*needed += strlen(tt->name);
*needed += sizeof(tt->version);
*needed += strlen(tt->name);
*needed += sizeof(tt->version);
@@
-850,7
+850,6
@@
static int dev_wait(struct dm_ioctl *param, size_t param_size)
int r;
struct mapped_device *md;
struct dm_table *table;
int r;
struct mapped_device *md;
struct dm_table *table;
- DECLARE_WAITQUEUE(wq, current);
md = find_device(param);
if (!md)
md = find_device(param);
if (!md)
@@
-859,12
+858,10
@@
static int dev_wait(struct dm_ioctl *param, size_t param_size)
/*
* Wait for a notification event
*/
/*
* Wait for a notification event
*/
- set_current_state(TASK_INTERRUPTIBLE);
- if (!dm_add_wait_queue(md, &wq, param->event_nr)) {
- schedule();
- dm_remove_wait_queue(md, &wq);
+ if (dm_wait_event(md, param->event_nr)) {
+ r = -ERESTARTSYS;
+ goto out;
}
}
- set_current_state(TASK_RUNNING);
/*
* The userland program is going to want to know what
/*
* The userland program is going to want to know what
@@
-1136,7
+1133,7
@@
static ioctl_fn lookup_ioctl(unsigned int cmd)
* As well as checking the version compatibility this always
* copies the kernel interface version out.
*/
* As well as checking the version compatibility this always
* copies the kernel interface version out.
*/
-static int check_version(unsigned int cmd, struct dm_ioctl *user)
+static int check_version(unsigned int cmd, struct dm_ioctl
__user
*user)
{
uint32_t version[3];
int r = 0;
{
uint32_t version[3];
int r = 0;
@@
-1171,7
+1168,7
@@
static void free_params(struct dm_ioctl *param)
vfree(param);
}
vfree(param);
}
-static int copy_params(struct dm_ioctl *user, struct dm_ioctl **param)
+static int copy_params(struct dm_ioctl
__user
*user, struct dm_ioctl **param)
{
struct dm_ioctl tmp, *dmi;
{
struct dm_ioctl tmp, *dmi;
@@
-1228,7
+1225,7
@@
static int ctl_ioctl(struct inode *inode, struct file *file,
int r = 0;
unsigned int cmd;
struct dm_ioctl *param;
int r = 0;
unsigned int cmd;
struct dm_ioctl *param;
- struct dm_ioctl
*user = (struct dm_ioctl
*) u;
+ struct dm_ioctl
__user *user = (struct dm_ioctl __user
*) u;
ioctl_fn fn = NULL;
size_t param_size;
ioctl_fn fn = NULL;
size_t param_size;