staging: zram: handle mem suffixes in disk size zram_sysfs parameter

Use memparse() to allow mem suffixes in disksize sysfs number.
Examples:
    echo 256K > /sys/block/zram0/disksize
    echo 512M > /sys/block/zram0/disksize
    echo 1G > /sys/block/zram0/disksize

Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Reviewed-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Sergey Senozhatsky 2012-10-30 22:42:31 +03:00 committed by Greg Kroah-Hartman
parent 37b51fdddf
commit 26907840e6

View File

@ -15,6 +15,7 @@
#include <linux/device.h> #include <linux/device.h>
#include <linux/genhd.h> #include <linux/genhd.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/kernel.h>
#include "zram_drv.h" #include "zram_drv.h"
@ -54,13 +55,12 @@ static ssize_t disksize_show(struct device *dev,
static ssize_t disksize_store(struct device *dev, static ssize_t disksize_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t len) struct device_attribute *attr, const char *buf, size_t len)
{ {
int ret;
u64 disksize; u64 disksize;
struct zram *zram = dev_to_zram(dev); struct zram *zram = dev_to_zram(dev);
ret = kstrtoull(buf, 10, &disksize); disksize = memparse(buf, NULL);
if (ret) if (!disksize)
return ret; return -EINVAL;
down_write(&zram->init_lock); down_write(&zram->init_lock);
if (zram->init_done) { if (zram->init_done) {