Re: [BK PATCH] More PCI Hotplug changes for 2.4.20-pre7

Greg KH (greg@kroah.com)
Thu, 19 Sep 2002 17:58:06 -0700


# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.683 -> 1.684
# drivers/hotplug/pci_hotplug_core.c 1.5 -> 1.6
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/09/18 scottm@somanetworks.com 1.684
# [PATCH] Small pcihpfs dnotify fix
#
# I've been working on a userspace daemon to go with my CompactPCI driver,
# and yesterday I discovered an oversight in pci_hp_change_slot_info - it
# doesn't call dnotify_parent, so dnotify based clients basically don't
# work against pcihpfs. The following patch (against 2.5 BK) reworks
# things to just update the mtime (since we're modifying the file after
# all), and then call dnotify_parent.
# --------------------------------------------
#
diff -Nru a/drivers/hotplug/pci_hotplug_core.c b/drivers/hotplug/pci_hotplug_core.c
--- a/drivers/hotplug/pci_hotplug_core.c Thu Sep 19 17:19:10 2002
+++ b/drivers/hotplug/pci_hotplug_core.c Thu Sep 19 17:19:10 2002
@@ -37,6 +37,7 @@
#include <linux/smp_lock.h>
#include <linux/init.h>
#include <linux/pci.h>
+#include <linux/dnotify.h>
#include <asm/uaccess.h>
#include "pci_hotplug.h"

@@ -1006,10 +1007,13 @@
return 0;
}

-static inline void update_inode_time (struct inode *inode)
+static inline void update_dentry_inode_time (struct dentry *dentry)
{
- if (inode)
- inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
+ struct inode *inode = dentry->d_inode;
+ if (inode) {
+ inode->i_mtime = CURRENT_TIME;
+ dnotify_parent(dentry, DN_MODIFY);
+ }
}

/**
@@ -1044,16 +1048,16 @@
core = temp->core_priv;
if ((core->power_dentry) &&
(temp->info->power_status != info->power_status))
- update_inode_time (core->power_dentry->d_inode);
+ update_dentry_inode_time (core->power_dentry);
if ((core->attention_dentry) &&
(temp->info->attention_status != info->attention_status))
- update_inode_time (core->attention_dentry->d_inode);
+ update_dentry_inode_time (core->attention_dentry);
if ((core->latch_dentry) &&
(temp->info->latch_status != info->latch_status))
- update_inode_time (core->latch_dentry->d_inode);
+ update_dentry_inode_time (core->latch_dentry);
if ((core->adapter_dentry) &&
(temp->info->adapter_status != info->adapter_status))
- update_inode_time (core->adapter_dentry->d_inode);
+ update_dentry_inode_time (core->adapter_dentry);

memcpy (temp->info, info, sizeof (struct hotplug_slot_info));
spin_unlock (&list_lock);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/