Linus Torvalds
9f2394c9be
Revert "ext4: allow readdir()'s of large empty directories to be interrupted"
...
This reverts commit 1028b55baf .
It's broken: it makes ext4 return an error at an invalid point, causing
the readdir wrappers to write the the position of the last successful
directory entry into the position field, which means that the next
readdir will now return that last successful entry _again_.
You can only return fatal errors (that terminate the readdir directory
walk) from within the filesystem readdir functions, the "normal" errors
(that happen when the readdir buffer fills up, for example) happen in
the iterorator where we know the position of the actual failing entry.
I do have a very different patch that does the "signal_pending()"
handling inside the iterator function where it is allowable, but while
that one passes all the sanity checks, I screwed up something like four
times while emailing it out, so I'm not going to commit it today.
So my track record is not good enough, and the stars will have to align
better before that one gets committed. And it would be good to get some
review too, of course, since celestial alignments are always an iffy
debugging model.
IOW, let's just revert the commit that caused the problem for now.
Reported-by: Greg Thelen <gthelen@google.com>
Cc: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-04-10 16:52:24 -07:00
..
9p
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
adfs
affs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
afs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
autofs4
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-03-19 18:52:29 -07:00
befs
bfs
btrfs
Merge branch 'for-linus-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
2016-04-09 10:41:34 -07:00
cachefiles
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
ceph
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
cifs
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
coda
configfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
cramfs
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
crypto
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
debugfs
devpts
pty: make sure super_block is still valid in final /dev/tty close
2016-02-06 23:45:46 -08:00
dlm
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
ecryptfs
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
efivarfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
efs
exofs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
exportfs
ext2
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
ext4
Revert "ext4: allow readdir()'s of large empty directories to be interrupted"
2016-04-10 16:52:24 -07:00
f2fs
Merge tag 'f2fs-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs
2016-04-04 13:00:39 -07:00
fat
fat: add config option to set UTF-8 mount option by default
2016-03-22 15:36:02 -07:00
freevxfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
fscache
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
fuse
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
gfs2
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
hfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
hfsplus
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
hostfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
hpfs
hpfs: don't truncate the file when delete fails
2016-02-27 19:15:51 -05:00
hugetlbfs
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
isofs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
jbd2
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
jffs2
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
jfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
kernfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
lockd
logfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
minix
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
ncpfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
nfs
These changes contains a fix for overlayfs interacting with some
2016-04-07 17:22:20 -07:00
nfs_common
nfsd
Various bugfixes, a RDMA update from Chuck Lever, and support for a new
2016-03-24 19:50:32 -07:00
nilfs2
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
nls
notify
fsnotify: turn fsnotify reaper thread into a workqueue job
2016-02-18 16:23:24 -08:00
ntfs
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
ocfs2
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
2016-04-04 13:18:27 -07:00
omfs
openpromfs
orangefs
Orangefs: cleanups and a strncpy vulnerability fix.
2016-04-09 10:33:58 -07:00
overlayfs
fs: add file_dentry()
2016-03-26 16:14:37 -04:00
proc
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
pstore
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
qnx4
qnx6
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
quota
quota: Handle Q_GETNEXTQUOTA when quota is disabled
2016-03-29 17:20:10 +02:00
ramfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
reiserfs
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
romfs
squashfs
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
sysfs
sysv
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
tracefs
ubifs
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
udf
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
ufs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
xfs
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
aio.c
anon_inodes.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
binfmt_elf_fdpic.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
block_dev.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
buffer.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c
Merge 4.5-rc4 into char-misc-next
2016-02-14 14:25:59 -08:00
coredump.c
fs/coredump: prevent fsuid=0 dumps into user-controlled directories
2016-03-22 15:36:02 -07:00
dax.c
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
dcache.c
fs: add file_dentry()
2016-03-26 16:14:37 -04:00
dcookies.c
direct-io.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
drop_caches.c
eventfd.c
eventfd: document lockless access in eventfd_poll
2016-03-22 15:36:02 -07:00
eventpoll.c
timer: convert timer_slack_ns from unsigned long to u64
2016-03-17 15:09:34 -07:00
exec.c
Merge branch 'mm-pkeys-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-03-20 19:08:56 -07:00
fcntl.c
fhandle.c
fs/coredump: prevent fsuid=0 dumps into user-controlled directories
2016-03-22 15:36:02 -07:00
file.c
file_table.c
filesystems.c
fs-writeback.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
fs_pin.c
fs_struct.c
inode.c
writeback: initialize inode members that track writeback history
2016-02-16 14:57:21 -07:00
internal.h
ioctl.c
Kconfig
Merge tag 'ofs-pull-tag-1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux
2016-03-26 12:59:04 -07:00
Kconfig.binfmt
libfs.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
locks.c
Makefile
Merge tag 'ofs-pull-tag-1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux
2016-03-26 12:59:04 -07:00
mbcache.c
mbcache: add reusable flag to cache entries
2016-02-22 22:44:04 -05:00
mount.h
mpage.c
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
namei.c
fix the braino in "namei: massage lookup_slow() to be usable by lookup_one_len_unlocked()"
2016-03-31 00:23:05 -04:00
namespace.c
no-block.c
nsfs.c
open.c
fs/coredump: prevent fsuid=0 dumps into user-controlled directories
2016-03-22 15:36:02 -07:00
pipe.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
pnode.c
fs/pnode.c: treat zero mnt_group_id-s as unequal
2016-02-20 00:15:52 -05:00
pnode.h
posix_acl.c
proc_namespace.c
vfs: show_vfsstat: do not ignore errors from show_devname method
2016-03-16 13:09:08 -04:00
read_write.c
Merge branches 'work.lookups', 'work.misc' and 'work.preadv2' into for-next
2016-03-18 16:07:38 -04:00
readdir.c
select.c
timer: convert timer_slack_ns from unsigned long to u64
2016-03-17 15:09:34 -07:00
seq_file.c
signalfd.c
splice.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
stack.c
stat.c
statfs.c
super.c
writeback: flush inode cgroup wb switches instead of pinning super_block
2016-03-03 14:42:50 -07:00
sync.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
timerfd.c
userfaultfd.c
userfaultfd: don't block on the last VM updates at exit time
2016-03-02 09:03:18 -08:00
utimes.c
xattr.c
xattr handlers: plug a lock leak in simple_xattr_list
2016-02-20 00:15:51 -05:00