Revision b928095b0a7cff7fb9fcf4c706348ceb8ab2c295 authored by Miklos Szeredi on 24 September 2014, 15:56:17 UTC, committed by Al Viro on 27 September 2014, 01:16:42 UTC
If overwriting an empty directory with rename, then need to drop the extra nlink. Test prog: #include <stdio.h> #include <fcntl.h> #include <err.h> #include <sys/stat.h> int main(void) { const char *test_dir1 = "test-dir1"; const char *test_dir2 = "test-dir2"; int res; int fd; struct stat statbuf; res = mkdir(test_dir1, 0777); if (res == -1) err(1, "mkdir(\"%s\")", test_dir1); res = mkdir(test_dir2, 0777); if (res == -1) err(1, "mkdir(\"%s\")", test_dir2); fd = open(test_dir2, O_RDONLY); if (fd == -1) err(1, "open(\"%s\")", test_dir2); res = rename(test_dir1, test_dir2); if (res == -1) err(1, "rename(\"%s\", \"%s\")", test_dir1, test_dir2); res = fstat(fd, &statbuf); if (res == -1) err(1, "fstat(%i)", fd); if (statbuf.st_nlink != 0) { fprintf(stderr, "nlink is %lu, should be 0\n", statbuf.st_nlink); return 1; } return 0; } Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Cc: stable@vger.kernel.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
1 parent 0f33be0
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 27.0 KB |
Makefile | -rw-r--r-- | 3.5 KB |
abort-ev4.S | -rw-r--r-- | 783 bytes |
abort-ev4t.S | -rw-r--r-- | 846 bytes |
abort-ev5t.S | -rw-r--r-- | 861 bytes |
abort-ev5tj.S | -rw-r--r-- | 938 bytes |
abort-ev6.S | -rw-r--r-- | 1.1 KB |
abort-ev7.S | -rw-r--r-- | 1004 bytes |
abort-lv4t.S | -rw-r--r-- | 6.3 KB |
abort-macro.S | -rw-r--r-- | 1.1 KB |
abort-nommu.S | -rw-r--r-- | 459 bytes |
alignment.c | -rw-r--r-- | 25.9 KB |
cache-aurora-l2.h | -rw-r--r-- | 1.8 KB |
cache-fa.S | -rw-r--r-- | 6.1 KB |
cache-feroceon-l2.c | -rw-r--r-- | 9.1 KB |
cache-l2x0.c | -rw-r--r-- | 41.5 KB |
cache-nop.S | -rw-r--r-- | 1.3 KB |
cache-tauros2.c | -rw-r--r-- | 6.9 KB |
cache-tauros3.h | -rw-r--r-- | 1.3 KB |
cache-v4.S | -rw-r--r-- | 3.2 KB |
cache-v4wb.S | -rw-r--r-- | 6.2 KB |
cache-v4wt.S | -rw-r--r-- | 4.7 KB |
cache-v6.S | -rw-r--r-- | 7.8 KB |
cache-v7.S | -rw-r--r-- | 12.0 KB |
cache-xsc3l2.c | -rw-r--r-- | 4.9 KB |
context.c | -rw-r--r-- | 7.0 KB |
copypage-fa.c | -rw-r--r-- | 2.3 KB |
copypage-feroceon.c | -rw-r--r-- | 3.1 KB |
copypage-v4mc.c | -rw-r--r-- | 3.4 KB |
copypage-v4wb.c | -rw-r--r-- | 2.8 KB |
copypage-v4wt.c | -rw-r--r-- | 2.3 KB |
copypage-v6.c | -rw-r--r-- | 3.5 KB |
copypage-xsc3.c | -rw-r--r-- | 2.8 KB |
copypage-xscale.c | -rw-r--r-- | 3.6 KB |
dma-mapping.c | -rw-r--r-- | 54.5 KB |
dump.c | -rw-r--r-- | 7.9 KB |
extable.c | -rw-r--r-- | 451 bytes |
fault-armv.c | -rw-r--r-- | 6.7 KB |
fault.c | -rw-r--r-- | 14.2 KB |
fault.h | -rw-r--r-- | 650 bytes |
flush.c | -rw-r--r-- | 10.3 KB |
fsr-2level.c | -rw-r--r-- | 3.8 KB |
fsr-3level.c | -rw-r--r-- | 3.4 KB |
highmem.c | -rw-r--r-- | 3.4 KB |
hugetlbpage.c | -rw-r--r-- | 1.5 KB |
idmap.c | -rw-r--r-- | 3.4 KB |
init.c | -rw-r--r-- | 16.2 KB |
iomap.c | -rw-r--r-- | 859 bytes |
ioremap.c | -rw-r--r-- | 11.2 KB |
l2c-common.c | -rw-r--r-- | 501 bytes |
l2c-l2x0-resume.S | -rw-r--r-- | 1.4 KB |
mm.h | -rw-r--r-- | 2.4 KB |
mmap.c | -rw-r--r-- | 5.5 KB |
mmu.c | -rw-r--r-- | 41.3 KB |
nommu.c | -rw-r--r-- | 9.9 KB |
pabort-legacy.S | -rw-r--r-- | 402 bytes |
pabort-v6.S | -rw-r--r-- | 417 bytes |
pabort-v7.S | -rw-r--r-- | 444 bytes |
pgd.c | -rw-r--r-- | 3.3 KB |
proc-arm1020.S | -rw-r--r-- | 12.6 KB |
proc-arm1020e.S | -rw-r--r-- | 11.7 KB |
proc-arm1022.S | -rw-r--r-- | 11.0 KB |
proc-arm1026.S | -rw-r--r-- | 10.8 KB |
proc-arm720.S | -rw-r--r-- | 5.9 KB |
proc-arm740.S | -rw-r--r-- | 3.9 KB |
proc-arm7tdmi.S | -rw-r--r-- | 3.1 KB |
proc-arm920.S | -rw-r--r-- | 11.5 KB |
proc-arm922.S | -rw-r--r-- | 10.9 KB |
proc-arm925.S | -rw-r--r-- | 13.5 KB |
proc-arm926.S | -rw-r--r-- | 12.5 KB |
proc-arm940.S | -rw-r--r-- | 9.4 KB |
proc-arm946.S | -rw-r--r-- | 10.8 KB |
proc-arm9tdmi.S | -rw-r--r-- | 2.3 KB |
proc-fa526.S | -rw-r--r-- | 5.1 KB |
proc-feroceon.S | -rw-r--r-- | 16.0 KB |
proc-macros.S | -rw-r--r-- | 7.7 KB |
proc-mohawk.S | -rw-r--r-- | 11.5 KB |
proc-sa110.S | -rw-r--r-- | 5.2 KB |
proc-sa1100.S | -rw-r--r-- | 6.8 KB |
proc-syms.c | -rw-r--r-- | 1.2 KB |
proc-v6.S | -rw-r--r-- | 8.2 KB |
proc-v7-2level.S | -rw-r--r-- | 4.3 KB |
proc-v7-3level.S | -rw-r--r-- | 4.6 KB |
proc-v7.S | -rw-r--r-- | 17.6 KB |
proc-v7m.S | -rw-r--r-- | 3.8 KB |
proc-xsc3.S | -rw-r--r-- | 14.0 KB |
proc-xscale.S | -rw-r--r-- | 18.3 KB |
tcm.h | -rw-r--r-- | 429 bytes |
tlb-fa.S | -rw-r--r-- | 1.8 KB |
tlb-v4.S | -rw-r--r-- | 1.6 KB |
tlb-v4wb.S | -rw-r--r-- | 1.9 KB |
tlb-v4wbi.S | -rw-r--r-- | 1.7 KB |
tlb-v6.S | -rw-r--r-- | 2.6 KB |
tlb-v7.S | -rw-r--r-- | 2.6 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...