2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-17 18:14:34 +08:00
linux-next/drivers
Sergey SENOZHATSKY 1237275580 zram: keep the exact overcommited value in mem_used_max
`mem_used_max' is designed to store the max amount of memory zram consumed
to store the data.  However, it does not represent the actual
'overcommited' (max) value.  The existing code goes to -ENOMEM
overcommited case before it updates `->stats.max_used_pages', which hides
the reason we went to -ENOMEM in the first place -- we actually used more
memory than `->limit_pages':

        alloced_pages = zs_get_total_pages(meta->mem_pool);
        if (zram->limit_pages && alloced_pages > zram->limit_pages) {
                zs_free(meta->mem_pool, handle);
                ret = -ENOMEM;
                goto out;
        }

        update_used_max(zram, alloced_pages);

Which is misleading.  User will see -ENOMEM, check `->limit_pages', check
`->stats.max_used_pages', which will keep the value BEFORE zram passed
`->limit_pages', and see:
	`->stats.max_used_pages' < `->limit_pages'

Move update_used_max() before we do `->limit_pages' check, so that
user will see:
	`->stats.max_used_pages' > `->limit_pages'
should the overcommit and -ENOMEM happen.

Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-11-06 17:50:42 -08:00
..
accessibility
acpi driver core update for 4.4-rc1 2015-11-04 21:50:37 -08:00
amba
android
ata Merge branch 'for-4.3-fixes' into for-4.4 2015-11-03 17:29:03 -05:00
atm
auxdisplay
base The majority of the changes are driver updates and new device 2015-11-05 12:59:36 -08:00
bcma
block zram: keep the exact overcommited value in mem_used_max 2015-11-06 17:50:42 -08:00
bluetooth driver core update for 4.4-rc1 2015-11-04 21:50:37 -08:00
bus
cdrom
char powerpc updates for 4.4 2015-11-05 23:38:43 -08:00
clk powerpc updates for 4.4 2015-11-05 23:38:43 -08:00
clocksource Power management and ACPI updates for v4.4-rc1 2015-11-04 18:10:13 -08:00
connector mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
cpufreq Merge branch 'pm-opp' 2015-11-02 00:54:37 +01:00
cpuidle
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2015-11-04 09:11:12 -08:00
dca
devfreq
dio
dma char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00
dma-buf
edac Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-11-03 17:51:33 -08:00
eisa
extcon Merge branches 'ib-extcon-mfd-4.4', 'ib-mfd-i2c-v4.4', 'ib-mfd-power-4.4', 'ib-mfd-regmap-4.4' and 'ib-mfd-regulator-4.4' into ibs-for-mfd-merged 2015-10-26 14:48:22 +00:00
firewire mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
firmware Half dozen small cleanups plus change to allow pstore 2015-11-05 11:51:18 -08:00
fmc
fpga fpga: socfpga: Fix check of return value of devm_request_irq 2015-10-29 15:20:25 -07:00
gpio spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
gpu mm, fs: introduce mapping_gfp_constraint() 2015-11-06 17:50:42 -08:00
hid
hsi hsi: controllers:remove redundant code 2015-10-30 16:10:40 +01:00
hv drivers/hv: share Hyper-V SynIC constants with userspace 2015-11-04 16:24:33 +01:00
hwmon spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
hwspinlock
hwtracing
i2c
ide mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM 2015-11-06 17:50:42 -08:00
idle
iio spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
infiniband mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM 2015-11-06 17:50:42 -08:00
input spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
iommu mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
ipack
irqchip Power management and ACPI updates for v4.4-rc1 2015-11-04 18:10:13 -08:00
isdn TTY/Serial driver patches for 4.4-rc1 2015-11-04 21:35:12 -08:00
leds spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
lguest
lightnvm lightnvm: refactor phys addrs type to u64 2015-11-03 09:53:24 -07:00
macintosh
mailbox
mcb mcb: Destroy IDA on module unload 2015-10-29 09:02:16 +09:00
md mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
media mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
memory char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00
memstick
message
mfd mfd: avoid newly introduced compiler warning 2015-11-06 10:47:12 -08:00
misc mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM 2015-11-06 17:50:42 -08:00
mmc spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
mtd mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
net mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
nfc spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
ntb
nubus
nvdimm
nvme mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM 2015-11-06 17:50:42 -08:00
nvmem
of driver core update for 4.4-rc1 2015-11-04 21:50:37 -08:00
oprofile
parisc
parport
pci Power management and ACPI updates for v4.4-rc1 2015-11-04 18:10:13 -08:00
pcmcia
perf arm64 updates for 4.4: 2015-11-04 14:47:13 -08:00
phy USB patches for 4.4-rc1 2015-11-04 21:26:27 -08:00
pinctrl This is the bulk of GPIO changes for v4.4: 2015-11-02 12:59:12 -08:00
platform - New Device Support 2015-11-06 10:23:50 -08:00
pnp
power - New Device Support 2015-11-06 10:23:50 -08:00
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
remoteproc
reset
rpmsg
rtc spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
s390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2015-11-04 11:31:31 -08:00
sbus
scsi mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM 2015-11-06 17:50:42 -08:00
sfi
sh
sn
soc
spi Merge remote-tracking branches 'spi/topic/s3c64xx', 'spi/topic/ti-qspi' and 'spi/topic/txx9' into spi-next 2015-11-04 11:02:16 +00:00
spmi char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00
ssb ssb: add Kconfig entry for compiling SoC related code 2015-10-28 21:05:21 +02:00
staging mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM 2015-11-06 17:50:42 -08:00
target
tc
thermal
thunderbolt
tty spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
uio
usb mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
uwb driver core update for 4.4-rc1 2015-11-04 21:50:37 -08:00
vfio
vhost vhost: fix performance on LE hosts 2015-10-27 20:17:03 -07:00
video mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
virt
virtio
vlynq
vme char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00
w1 power supply and reset changes for the v4.4 series 2015-11-05 12:28:15 -08:00
watchdog
xen
zorro
Kconfig char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00
Makefile char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00