mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 13:49:24 -04:00
moto_swap: Add reset_bdev to close backing dev for ramboost2.0
reboot process will write 1 to /sys/block/zram0/reset to close backing device fd Change-Id: Id11caf26c3edff89a0bf64fc706799c1d54901ee Reviewed-on: https://gerrit.mot.com/2816017 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Wang Wang <wangwang1@lenovo.com> Submit-Approved: Jira Key
This commit is contained in:
parent
7735d45448
commit
c61cab09a2
4 changed files with 66 additions and 0 deletions
|
|
@ -4400,6 +4400,15 @@ ssize_t hybridswap_loop_device_show(struct device *dev,
|
|||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
int len = 0;
|
||||
struct zram *zram = dev_to_zram(dev);
|
||||
|
||||
down_read(&zram->init_lock);
|
||||
if (!zram->backing_dev) {
|
||||
memcpy(buf, "none\n", 5);
|
||||
up_read(&zram->init_lock);
|
||||
return 5;
|
||||
}
|
||||
up_read(&zram->init_lock);
|
||||
|
||||
len = sprintf(buf, "%s\n", loop_device);
|
||||
|
||||
|
|
|
|||
|
|
@ -791,7 +791,27 @@ static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
|
|||
return read_from_bdev_async(zram, bvec, entry, parent);
|
||||
}
|
||||
#else
|
||||
#ifdef CONFIG_HYBRIDSWAP_CORE
|
||||
static void reset_bdev(struct zram *zram)
|
||||
{
|
||||
struct block_device *bdev;
|
||||
|
||||
if (!zram->backing_dev)
|
||||
return;
|
||||
|
||||
bdev = zram->bdev;
|
||||
if (zram->old_block_size)
|
||||
set_blocksize(bdev, zram->old_block_size);
|
||||
blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
|
||||
/* hope filp_close flush all of IO */
|
||||
filp_close(zram->backing_dev, NULL);
|
||||
zram->backing_dev = NULL;
|
||||
zram->old_block_size = 0;
|
||||
zram->bdev = NULL;
|
||||
}
|
||||
#else
|
||||
static inline void reset_bdev(struct zram *zram) {};
|
||||
#endif
|
||||
static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
|
||||
unsigned long entry, struct bio *parent, bool sync)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -782,7 +782,24 @@ static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
|
|||
return read_from_bdev_async(zram, bvec, entry, parent);
|
||||
}
|
||||
#else
|
||||
#ifdef CONFIG_HYBRIDSWAP_CORE
|
||||
static void reset_bdev(struct zram *zram)
|
||||
{
|
||||
struct block_device *bdev;
|
||||
|
||||
if (!zram->backing_dev)
|
||||
return;
|
||||
|
||||
bdev = zram->bdev;
|
||||
blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
|
||||
/* hope filp_close flush all of IO */
|
||||
filp_close(zram->backing_dev, NULL);
|
||||
zram->backing_dev = NULL;
|
||||
zram->bdev = NULL;
|
||||
}
|
||||
#else
|
||||
static inline void reset_bdev(struct zram *zram) {};
|
||||
#endif
|
||||
static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
|
||||
unsigned long entry, struct bio *parent, bool sync)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -776,7 +776,27 @@ static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
|
|||
return read_from_bdev_async(zram, bvec, entry, parent);
|
||||
}
|
||||
#else
|
||||
#ifdef CONFIG_HYBRIDSWAP_CORE
|
||||
static void reset_bdev(struct zram *zram)
|
||||
{
|
||||
struct block_device *bdev;
|
||||
|
||||
if (!zram->backing_dev)
|
||||
return;
|
||||
|
||||
bdev = zram->bdev;
|
||||
if (zram->old_block_size)
|
||||
set_blocksize(bdev, zram->old_block_size);
|
||||
blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
|
||||
/* hope filp_close flush all of IO */
|
||||
filp_close(zram->backing_dev, NULL);
|
||||
zram->backing_dev = NULL;
|
||||
zram->old_block_size = 0;
|
||||
zram->bdev = NULL;
|
||||
}
|
||||
#else
|
||||
static inline void reset_bdev(struct zram *zram) {};
|
||||
#endif
|
||||
static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
|
||||
unsigned long entry, struct bio *parent, bool sync)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue