<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">ChangeSet 1.1722.111.25, 2004/06/11 17:22:53-07:00, linux@kodeaffe.de

[PATCH] sysfs: fs/sysfs/inode.c: modify parents ctime and mtime on creation

When a node is added to sysfs (e.g. a device plugged in via USB), the
filesystem fails to make this change visible in the parent directory's
ctime/mtime. This is in contrast to removing a device, because in that
case, sysfs makes use of the function simple_unlink from fs/libfs.c which
takes care of that. Instead of using simple_link from fs/libfs.c on
creation, sysfs implements its own mechanism. This patch hooks into the
function sysfs_create and sets the ctime and the mtime of the parent to
CURRENT_TIME.

Signed-off-by: Sebastian Henschel &lt;linux@kodeaffe.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;greg@kroah.com&gt;


 fs/sysfs/inode.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)


diff -Nru a/fs/sysfs/inode.c b/fs/sysfs/inode.c
--- a/fs/sysfs/inode.c	Tue Jun 22 09:46:53 2004
+++ b/fs/sysfs/inode.c	Tue Jun 22 09:46:53 2004
@@ -46,8 +46,13 @@
 	struct inode * inode = NULL;
 	if (dentry) {
 		if (!dentry-&gt;d_inode) {
-			if ((inode = sysfs_new_inode(mode)))
+			if ((inode = sysfs_new_inode(mode))) {
+				if (dentry-&gt;d_parent &amp;&amp; dentry-&gt;d_parent-&gt;d_inode) {
+					struct inode *p_inode = dentry-&gt;d_parent-&gt;d_inode;
+					p_inode-&gt;i_mtime = p_inode-&gt;i_ctime = CURRENT_TIME;
+				}
 				goto Proceed;
+			}
 			else 
 				error = -ENOMEM;
 		} else
</pre></body></html>