All of lore.kernel.org
 help / color / mirror / Atom feed
* [Patch][RFC] fcntl: add ability to stop monitored processes
@ 2005-06-11  0:05 Neil Horman
  2005-06-11 18:07 ` Matthew Wilcox
  0 siblings, 1 reply; 12+ messages in thread
From: Neil Horman @ 2005-06-11  0:05 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: linux-kernel, matthew, nhorman

[-- Attachment #1: Type: text/plain, Size: 2293 bytes --]

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 <nhorman@redhat.com>

 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.
 *nhorman@redhat.com
 *gpg keyid: 1024D / 0x92A74FA1
 *http://pgp.mit.edu
 ***************************************************/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2005-06-13 15:23 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-11  0:05 [Patch][RFC] fcntl: add ability to stop monitored processes Neil Horman
2005-06-11 18:07 ` Matthew Wilcox
2005-06-11 19:35   ` Neil Horman
2005-06-12 18:10     ` Neil Horman
2005-06-13  6:13       ` Arjan van de Ven
2005-06-13 13:48         ` Neil Horman
2005-06-13 14:03           ` Alan Cox
2005-06-13 15:12             ` Neil Horman
2005-06-13 13:42       ` Alan Cox
2005-06-13 13:50         ` Neil Horman
2005-06-13 15:10           ` Alan Cox
2005-06-13 15:22             ` Matthew Wilcox

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.