Bug#818096: linux-image-4.3.0-1-amd64: vfat mount option "shortname=lower" makes uppercase directories unremovable
Package: src:linux
Version: 4.3.5-1
Severity: normal
{ Not sure if this is the right package to report this bug against;
please move appropriately, if necessary. }
Symptoms
--------
When mounting a FAT32, FAT16, or FAT12 file system with the option
"shortname=lower" and creating a directory with an all-uppercase name,
the directory cannot be removed afterwards, neither by "rm -r" nor
"rmdir".
Note that otherwise, accessibility of the directory is not affected;
one can cd to it, and access files below it without problems.
Mount version used: 2.27.1-6.
Mount options
shortname=win95
shortname=winnt
shortname=mixed
do not show this behavior.
Steps to reproduce
------------------
# dd if=/dev/zero of=test.img seek=100M count=0 bs=1M oflag=seek_bytes
0+0 records in
0+0 records out
0 bytes copied, 0.000146967 s, 0.0 kB/s
# mkfs.fat -F 32 test.img # FAT16 and FAT12 affected as well
# mkdir -m 0 /mnt/test
# mount -o loop,shortname=lower test.img /mnt/test
# mkdir /mnt/test/FOO
# ls -l /mnt/test
total 1
drwxr-xr-x 2 root root 512 Mar 13 16:56 foo
# rmdir /mnt/test/foo
rmdir: failed to remove '/mnt/test/foo': No such file or directory
# echo $?
1
# rmdir /mnt/test/FOO
rmdir: failed to remove '/mnt/test/FOO': No such file or directory
# echo $?
1
# rmdir /mnt/test/Foo
rmdir: failed to remove '/mnt/test/Foo': No such file or directory
# echo $?
1
# rm -r /mnt/test/foo
rm: cannot remove '/mnt/test/foo': No such file or directory
# echo $?
1
# rm -r /mnt/test/FOO
rm: cannot remove '/mnt/test/FOO': No such file or directory
# echo $?
1
# rm -r /mnt/test/Foo
rm: cannot remove '/mnt/test/Foo': No such file or directory
# echo $?
1
-- Package-specific info:
** Version:
Linux version 4.3.0-1-amd64 (debian-kernel@lists.debian.org) (gcc version 5.3.1 20160121 (Debian 5.3.1-7) ) #1 SMP Debian 4.3.5-1 (2016-02-06)
** Command line:
BOOT_IMAGE=/vmlinuz-4.3.0-1-amd64 root=/dev/mapper/vg13-lv--root ro libata.force=7:1.5Gbps
** Tainted: PO (4097)
* Proprietary module has been loaded.
* Out-of-tree module has been loaded.
** Kernel log:
[...]
[14112.215110] FAT-fs (loop0): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
** Model information
[...]
** Loaded modules:
loop
nls_utf8
nls_cp437
vfat
fat
nfsv3
bnep
bluetooth
iptable_filter
ip_tables
autofs4
x_tables
snd_hrtimer
snd_seq_midi
snd_seq_midi_event
snd_rawmidi
snd_seq
snd_seq_device
cpufreq_stats
cpufreq_userspace
cpufreq_conservative
cpufreq_powersave
pci_stub
vboxpci(O)
vboxnetadp(O)
vboxnetflt(O)
vboxdrv(O)
binfmt_misc
nfsd
auth_rpcgss
oid_registry
nfs_acl
nfs
lockd
grace
fscache
sunrpc
msr
i2c_dev
it87
hwmon_vid
parport_pc
ppdev
lp
parport
snd_hda_codec_realtek
nvidia(PO)
snd_hda_codec_generic
snd_hda_codec_hdmi
eeepc_wmi
asus_wmi
sparse_keymap
rfkill
video
mxm_wmi
snd_hda_intel
kvm_amd
snd_hda_codec
snd_hda_core
kvm
snd_hwdep
pcspkr
evdev
serio_raw
snd_pcm_oss
k10temp
snd_mixer_oss
amd64_edac_mod
edac_mce_amd
edac_core
snd_pcm
snd_timer
8250_fintek
drm
sp5100_tco
tpm_infineon
snd
soundcore
sg
wmi
shpchp
button
i2c_piix4
acpi_cpufreq
tpm_tis
tpm
processor
ext4
crc16
mbcache
jbd2
crc32c_generic
btrfs
xor
raid6_pq
sha256_generic
hmac
drbg
ansi_cprng
cbc
dm_crypt
dm_mod
md_mod
hid_generic
usbhid
hid
sd_mod
uas
usb_storage
ohci_pci
ahci
libahci
xhci_pci
ehci_pci
ohci_hcd
xhci_hcd
ehci_hcd
libata
e1000e
ptp
usbcore
pps_core
usb_common
scsi_mod
** Network interface configuration:
[...]
** Network status:
*** IP interfaces and addresses:
[...]
*** Device statistics:
[...]
*** Protocol statistics:
[...]
** PCI devices:
[...]
** USB devices:
[...]
-- System Information:
Debian Release: stretch/sid
APT prefers testing
APT policy: (501, 'testing'), (50, 'unstable'), (25, 'experimental'), (12, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.3.0-1-amd64 (SMP w/6 CPU cores)
Locale: LANG=en_US.ISO-8859-15, LC_CTYPE=en_US.ISO-8859-15 (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash
Init: sysvinit (via /sbin/init)
Versions of packages linux-image-4.3.0-1-amd64 depends on:
ii debconf [debconf-2.0] 1.5.58
ii initramfs-tools [linux-initramfs-tool] 0.123
ii kmod 22-1
ii linux-base 4.0
Versions of packages linux-image-4.3.0-1-amd64 recommends:
ii firmware-linux-free 3.4
ii irqbalance 1.1.0-2
Versions of packages linux-image-4.3.0-1-amd64 suggests:
pn debian-kernel-handbook <none>
ii extlinux 3:6.03+dfsg-11
ii grub-pc 2.02~beta2-36
pn linux-doc-4.3 <none>
Versions of packages linux-image-4.3.0-1-amd64 is related to:
pn firmware-atheros <none>
pn firmware-bnx2 <none>
pn firmware-bnx2x <none>
pn firmware-brcm80211 <none>
pn firmware-intelwimax <none>
pn firmware-ipw2x00 <none>
pn firmware-ivtv <none>
pn firmware-iwlwifi <none>
pn firmware-libertas <none>
ii firmware-linux 20160110-1
ii firmware-linux-nonfree 20160110-1
ii firmware-misc-nonfree [firmware-ralink] 20160110-1
pn firmware-myricom <none>
pn firmware-netxen <none>
pn firmware-qlogic <none>
pn firmware-realtek <none>
pn xen-hypervisor <none>
-- debconf information:
linux-image-4.3.0-1-amd64/postinst/depmod-error-initrd-4.3.0-1-amd64: false
linux-image-4.3.0-1-amd64/postinst/mips-initrd-4.3.0-1-amd64:
linux-image-4.3.0-1-amd64/prerm/removing-running-kernel-4.3.0-1-amd64: true
Reply to: