Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> writes: > On Wed, 10 Dec 2014 16:49:18 +0300 Dmitry Monakhov <dmonakhov@xxxxxxxxxx> wrote: > >> >> Hello. Someone please take care of this patch. >> >> W/o that patch unprivileged user may abuse system resources simply by spawning >> wast number of unkilable busyloops (works on ext2/ext3): >> >> truncate --size 1T test >> for ((i=0;i<1024;i++)) >> do >> filefrag test > /dev/null & >> done >> >> >> --- a/fs/ioctl.c >> >> +++ b/fs/ioctl.c >> >> @@ -379,6 +379,11 @@ int __generic_block_fiemap(struct inode *inode, >> >> past_eof = true; >> >> } >> >> cond_resched(); >> >> + if (fatal_signal_pending(current)) { >> >> + ret = -EINTR; >> >> + break; >> >> + } >> >> + >> >> } while (1); >> >> > > Is FIEMAP documented anywhere (manpage)? If so, that will need an > update. Yes you right. I just thought that it is assumed by default. The only place I know is Documentation/filesystems/fiemap.txt Please fold patch attached to original one.
Attachment:
signature.asc
Description: PGP signature
>From f7af425b2ac920065491a478b4f4359f422b3453 Mon Sep 17 00:00:00 2001 From: Dmitry Monakhov <dmonakhov@xxxxxxxxxx> Date: Fri, 19 Dec 2014 13:11:29 +0400 Subject: [PATCH] doc: fimemap update signal behaviour Signed-off-by: Dmitry Monakhov <dmonakhov@xxxxxxxxxx> --- Documentation/filesystems/fiemap.txt | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/Documentation/filesystems/fiemap.txt b/Documentation/filesystems/fiemap.txt index 1b805a0..f6d9c99 100644 --- a/Documentation/filesystems/fiemap.txt +++ b/Documentation/filesystems/fiemap.txt @@ -196,7 +196,8 @@ struct fiemap_extent_info { }; It is intended that the file system should not need to access any of this -structure directly. +structure directly. Filesystem handlers should be tolerant to signals and return +EINTR once fatal signal received. Flag checking should be done at the beginning of the ->fiemap callback via the -- 1.7.1