git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add missing arcstats
[zfs.git]
/
module
/
zfs
/
zvol.c
diff --git
a/module/zfs/zvol.c
b/module/zfs/zvol.c
index
04c885f
..
65a9240
100644
(file)
--- a/
module/zfs/zvol.c
+++ b/
module/zfs/zvol.c
@@
-44,6
+44,7
@@
#include <sys/zfs_rlock.h>
#include <sys/zfs_znode.h>
#include <sys/zvol.h>
#include <sys/zfs_rlock.h>
#include <sys/zfs_znode.h>
#include <sys/zvol.h>
+#include <linux/blkdev_compat.h>
unsigned int zvol_major = ZVOL_MAJOR;
unsigned int zvol_threads = 0;
unsigned int zvol_major = ZVOL_MAJOR;
unsigned int zvol_threads = 0;
@@
-57,7
+58,7
@@
static char *zvol_tag = "zvol_tag";
* The in-core state of each volume.
*/
typedef struct zvol_state {
* The in-core state of each volume.
*/
typedef struct zvol_state {
- char zv_name[
DISK_NAME_LEN];
/* name */
+ char zv_name[
MAXNAMELEN];
/* name */
uint64_t zv_volsize; /* advertised space */
uint64_t zv_volblocksize;/* volume block size */
objset_t *zv_objset; /* objset handle */
uint64_t zv_volsize; /* advertised space */
uint64_t zv_volblocksize;/* volume block size */
objset_t *zv_objset; /* objset handle */
@@
-131,7
+132,7
@@
zvol_find_by_name(const char *name)
ASSERT(MUTEX_HELD(&zvol_state_lock));
for (zv = list_head(&zvol_state_list); zv != NULL;
zv = list_next(&zvol_state_list, zv)) {
ASSERT(MUTEX_HELD(&zvol_state_lock));
for (zv = list_head(&zvol_state_list); zv != NULL;
zv = list_next(&zvol_state_list, zv)) {
- if (!strncmp(zv->zv_name, name,
DISK_NAME_
LEN))
+ if (!strncmp(zv->zv_name, name,
MAXNAME
LEN))
return zv;
}
return zv;
}
@@
-894,6
+895,9
@@
zvol_ioctl(struct block_device *bdev, fmode_t mode,
case BLKFLSBUF:
zil_commit(zv->zv_zilog, ZVOL_OBJ);
break;
case BLKFLSBUF:
zil_commit(zv->zv_zilog, ZVOL_OBJ);
break;
+ case BLKZNAME:
+ error = copy_to_user((void *)arg, zv->zv_name, MAXNAMELEN);
+ break;
default:
error = -ENOTTY;
default:
error = -ENOTTY;
@@
-1057,7
+1061,7
@@
zvol_alloc(dev_t dev, const char *name)
zv->zv_queue->queuedata = zv;
zv->zv_dev = dev;
zv->zv_open_count = 0;
zv->zv_queue->queuedata = zv;
zv->zv_dev = dev;
zv->zv_open_count = 0;
- strlcpy(zv->zv_name, name,
DISK_NAME_
LEN);
+ strlcpy(zv->zv_name, name,
MAXNAME
LEN);
mutex_init(&zv->zv_znode.z_range_lock, NULL, MUTEX_DEFAULT, NULL);
avl_create(&zv->zv_znode.z_range_avl, zfs_range_compare,
mutex_init(&zv->zv_znode.z_range_lock, NULL, MUTEX_DEFAULT, NULL);
avl_create(&zv->zv_znode.z_range_avl, zfs_range_compare,
@@
-1072,7
+1076,8
@@
zvol_alloc(dev_t dev, const char *name)
zv->zv_disk->fops = &zvol_ops;
zv->zv_disk->private_data = zv;
zv->zv_disk->queue = zv->zv_queue;
zv->zv_disk->fops = &zvol_ops;
zv->zv_disk->private_data = zv;
zv->zv_disk->queue = zv->zv_queue;
- snprintf(zv->zv_disk->disk_name, DISK_NAME_LEN, "%s", name);
+ snprintf(zv->zv_disk->disk_name, DISK_NAME_LEN, "%s%d",
+ ZVOL_DEV_NAME, (dev & MINORMASK));
return zv;
return zv;
@@
-1273,7
+1278,7
@@
zvol_remove_minors(const char *pool)
zvol_state_t *zv, *zv_next;
char *str;
zvol_state_t *zv, *zv_next;
char *str;
- str = kmem_zalloc(
DISK_NAME_
LEN, KM_SLEEP);
+ str = kmem_zalloc(
MAXNAME
LEN, KM_SLEEP);
if (pool) {
(void) strncpy(str, pool, strlen(pool));
(void) strcat(str, "/");
if (pool) {
(void) strncpy(str, pool, strlen(pool));
(void) strcat(str, "/");
@@
-1289,7
+1294,7
@@
zvol_remove_minors(const char *pool)
}
}
mutex_exit(&zvol_state_lock);
}
}
mutex_exit(&zvol_state_lock);
- kmem_free(str,
DISK_NAME_
LEN);
+ kmem_free(str,
MAXNAME
LEN);
}
int
}
int