Hey there! I've recently developed this patch in pursuit of an ability to trap proceses making modifcations to monitored directories, and I thought It would be a nice feature to add to the mainline kernel. It basically adds a flag to the F_NOTIFY fcntl which optionally sends a SIGSTOP to the process making the flagged modifications to the monitored directories, and passes the pid of the stopped process to the monitoring process. I've tested it, and it works quite well for me. Looking for comments/approvial/incorporation. Thanks and Regards Neil Signed-off-by: Neil Horman <[email protected]> fs/dnotify.c | 2 ++ fs/fcntl.c | 1 + include/linux/fcntl.h | 1 + 3 files changed, 4 insertions(+) --- linux-2.6/include/linux/fcntl.h.orig 2005-06-10 16:04:48.000000000 -0400 +++ linux-2.6/include/linux/fcntl.h 2005-06-10 16:02:16.000000000 -0400 @@ -21,6 +21,7 @@ #define DN_DELETE 0x00000008 /* File removed */ #define DN_RENAME 0x00000010 /* File renamed */ #define DN_ATTRIB 0x00000020 /* File changed attibutes */ +#define DN_STOPSND 0x40000000 /* Send a SIGSTOP to the sender */ #define DN_MULTISHOT 0x80000000 /* Don't remove notifier */ #ifdef __KERNEL__ --- linux-2.6/fs/dnotify.c.orig 2005-05-04 21:47:58.000000000 -0400 +++ linux-2.6/fs/dnotify.c 2005-06-10 16:02:16.000000000 -0400 @@ -138,6 +138,8 @@ void __inode_dir_notify(struct inode *in changed = 1; kmem_cache_free(dn_cache, dn); } + if (dn->dn_mask & DN_STOPSND) + send_sig(SIGSTOP,current,1); } if (changed) redo_inode_mask(inode); --- linux-2.6/fs/fcntl.c.orig 2005-05-04 21:47:58.000000000 -0400 +++ linux-2.6/fs/fcntl.c 2005-06-10 16:05:17.000000000 -0400 @@ -438,6 +438,7 @@ static void send_sigio_to_task(struct ta else si.si_band = band_table[reason - POLL_IN]; si.si_fd = fd; + si.si_pid = current->pid; if (!send_group_sig_info(fown->signum, &si, p)) break; /* fall-through: fall back on the old plain SIGIO signal */ -- /*************************************************** *Neil Horman *Software Engineer *Red Hat, Inc. *[email protected] *gpg keyid: 1024D / 0x92A74FA1 *http://pgp.mit.edu ***************************************************/
Attachment:
pgp9kvs7fS0Wf.pgp
Description: PGP signature
- Follow-Ups:
- Re: [Patch][RFC] fcntl: add ability to stop monitored processes
- From: Matthew Wilcox <[email protected]>
- Re: [Patch][RFC] fcntl: add ability to stop monitored processes
- Prev by Date: Re: 2.6.12-rc6-mm1
- Next by Date: [PATCH][MM] ppc32: enable rapidio on mpc85xx ads boards
- Previous by thread: [PATCH] radeonfb: don't blow up VGA console on load
- Next by thread: Re: [Patch][RFC] fcntl: add ability to stop monitored processes
- Index(es):