Minchan Kim
2e32baea46
zram: revalidate disk after capacity change
...
Alexander reported mkswap on /dev/zram0 is failed if other process is
opening the block device file.
Step is as follows,
0. Reset the unused zram device.
1. Use a program that opens /dev/zram0 with O_RDWR and sleeps
until killed.
2. While that program sleeps, echo the correct value to
/sys/block/zram0/disksize.
3. Verify (e.g. in /proc/partitions) that the disk size is applied
correctly. It is.
4. While that program still sleeps, attempt to mkswap /dev/zram0.
This fails: mkswap: error: swap area needs to be at least 40 KiB
When I investigated, the size get by ioctl(fd, BLKGETSIZE64, xxx) on
mkswap to get a size of blockdev was zero although zram0 has right size by
2.
The reason is zram didn't revalidate disk after changing capacity so that
size of blockdev's inode is not uptodate until all of file is close.
This patch should fix the BUG.
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
Tested-by: Alexander E. Patrakov <patrakov@gmail.com>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Nitin Gupta <ngupta@vflare.org>
Acked-by: Jerome Marchand <jmarchan@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-07-03 09:21:53 -07:00
..
accessibility
acpi
Merge branches 'acpi-general', 'acpi-processor', 'acpi-lpss' and 'acpi-battery'
2014-06-19 14:40:48 +02:00
amba
ata
Merge branch 'for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
2014-06-09 14:58:36 -07:00
atm
auxdisplay
base
DMA, CMA: fix possible memory leak
2014-06-23 16:47:44 -07:00
bcma
block
zram: revalidate disk after capacity change
2014-07-03 09:21:53 -07:00
bluetooth
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2014-06-12 14:27:40 -07:00
bus
bus/arm-cci: add dependency on OF && CPU_V7
2014-06-17 17:09:35 +02:00
cdrom
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
2014-06-11 08:41:17 -07:00
char
random: fix entropy accounting bug introduced in v3.15
2014-06-17 14:23:14 -10:00
clk
This pull request contains the second half the of the clk changes for
2014-06-15 16:02:20 -10:00
clocksource
clocksource: exynos_mct: Don't reset the counter during boot and resume
2014-06-17 00:23:29 +09:00
connector
cpufreq
cpufreq: unlock when failing cpufreq_update_policy()
2014-06-18 21:52:20 +02:00
cpuidle
cpuidle: mvebu: Fix the name of the states
2014-06-18 21:54:46 +02:00
crypto
crypto/nx: disable NX on little endian builds
2014-06-11 17:03:19 +10:00
dca
devfreq
dio
dma
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
2014-06-10 10:28:45 -07:00
edac
eisa
extcon
firewire
sound updates for 3.16-rc1
2014-06-04 09:08:25 -07:00
firmware
efi-pstore: Fix an overflow on 32-bit builds
2014-06-27 07:30:32 +01:00
fmc
gpio
gpio: of: Fix handling for deferred probe for -gpio suffix
2014-06-12 09:57:00 +02:00
gpu
Merge tag 'drm-intel-fixes-2014-06-26' of git://anongit.freedesktop.org/drm-intel into drm-fixes
2014-06-27 15:04:06 +10:00
hid
Most of this is cleaning up various driver sysfs permissions so we can
2014-06-11 16:09:14 -07:00
hsi
hsi: omap_ssi_port: use normal module refcounting
2014-06-05 00:59:05 +02:00
hv
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2014-06-12 14:27:40 -07:00
hwmon
hwmon: (gpio-fan) Change name used in hwmon_device_register_with_groups
2014-06-25 15:16:09 -07:00
hwspinlock
i2c
i2c: sun6-p2wi: fix call to snprintf
2014-06-17 14:28:04 +02:00
ide
idle
iio
First set of IIO fixes for the 3.16 cycle.
2014-06-18 10:41:08 -07:00
infiniband
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2014-06-12 22:38:32 -07:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2014-06-09 18:46:02 -07:00
iommu
iommu/amd: Fix small race between invalidate_range_end/start
2014-06-20 16:14:22 +02:00
ipack
irqchip
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
2014-06-04 15:59:13 -07:00
isdn
isdn: hisax: Drop duplicate Kconfig entry
2014-06-16 21:31:37 -07:00
leds
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds
2014-06-12 13:08:09 -07:00
lguest
macintosh
powerpc/macintosh/smu.c: Fix closing brace followed by if
2014-06-24 12:43:15 +10:00
mailbox
mcb
md
. Add dm_accept_partial_bio interface to DM core to allow DM targets
2014-06-12 13:33:29 -07:00
media
Merge branch 'topic/omap3isp' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
2014-06-12 23:04:28 -07:00
memory
memstick
drivers/memstick/host/rtsx_pci_ms.c: add cancel_work when remove driver
2014-06-23 16:47:44 -07:00
message
mfd
mfd: ab8500: Fix dt irq mapping
2014-06-26 13:34:15 +01:00
misc
ARM: SoC fixes for 3.16
2014-06-25 12:19:01 -07:00
mmc
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2014-06-12 14:27:40 -07:00
mtd
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2014-06-12 10:30:18 -07:00
net
net: allwinner: emac: Add missing free_irq
2014-06-25 16:31:17 -07:00
nfc
ntb
nubus
kernel/printk: use symbolic defines for console loglevels
2014-06-04 16:54:17 -07:00
of
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2014-06-25 21:08:24 -07:00
oprofile
parisc
parport
parport: convert use of typedef ctl_table to struct ctl_table
2014-06-06 16:08:15 -07:00
pci
PCI changes for the v3.16 merge window (part 2):
2014-06-12 13:20:24 -07:00
pcmcia
phy
pinctrl
This is the bulk of pin control changes for the v3.16
2014-06-03 11:20:32 -07:00
platform
Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86
2014-06-10 16:58:32 -07:00
pnp
Merge branches 'pnp', 'powercap', 'pm-runtime' and 'pm-opp'
2014-06-03 23:13:00 +02:00
power
ACPI and power management updates for 3.16-rc1
2014-06-04 08:57:16 -07:00
powercap
pps
ps3
ptp
ptp: ptp_pch depends on x86_32
2014-06-17 15:43:48 -07:00
pwm
pwm: Changes for v3.16-rc1
2014-06-11 14:06:55 -07:00
rapidio
rapidio/tsi721: use pci_enable_msix_exact() instead of pci_enable_msix()
2014-06-06 16:08:13 -07:00
regulator
Merge remote-tracking branches 'regulator/fix/bcm590xx', 'regulator/fix/palmas' and 'regulator/fix/tps65218' into regulator-linus
2014-06-28 14:01:04 +01:00
remoteproc
remoteproc: da8xx: don't select CMA on no-MMU
2014-06-17 17:09:36 +02:00
reset
rpmsg
rtc
drivers/rtc/rtc-puv3.c: remove "&dev->" for typo issue MIME-Version: 1.0
2014-06-20 08:22:39 +08:00
s390
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
2014-06-21 06:47:01 -10:00
sbus
scsi
drivers: scsi: mvsas: fix compiling issue by adding 'MVS_' for "enum pci_interrupt_cause"
2014-06-20 08:22:39 +08:00
sfi
sh
SH Driver Update for v3.16
2014-06-06 11:44:09 -07:00
sn
soc
spi
Merge remote-tracking branches 'spi/fix/pxa2xx', 'spi/fix/qup' and 'spi/fix/sh-sci' into spi-linus
2014-06-28 14:01:23 +01:00
spmi
ssb
staging
imx-drm: parallel-display: Fix DPMS default state.
2014-06-19 17:33:37 -07:00
target
iscsi-target: fix iscsit_del_np deadlock on unload
2014-06-27 23:23:35 -07:00
tc
TC: Handle device_register() errors.
2014-06-26 10:48:23 +01:00
thermal
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
2014-06-11 14:26:21 -07:00
tty
ARM: SoC fixes for 3.16
2014-06-25 12:19:01 -07:00
uio
Revert "uio: fix vma io range check in mmap"
2014-06-17 16:07:08 -07:00
usb
USB: usbtest: add a timeout for scatter-gather tests
2014-06-17 17:05:50 -07:00
uwb
vfio
A handful of VFIO bug fixes for v3.16
2014-06-07 20:12:15 -07:00
vhost
vhost-scsi: don't open-code kvfree
2014-06-23 09:22:48 +03:00
video
fb: adv7393: add missing semicolon
2014-07-01 13:18:38 +03:00
virt
virtio
vlynq
vme
w1
w1: mxc_w1: Fix incorrect "presence" status
2014-06-19 17:51:46 -07:00
watchdog
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
2014-06-21 06:47:01 -10:00
xen
xen: regression and PVH fixes for 3.16-rc1
2014-06-19 07:53:27 -10:00
zorro
Kconfig
Makefile