]> sourceware.org Git - systemtap.git/commitdiff
Use semaphore if mutex not available
authortrz <trz>
Thu, 21 Sep 2006 21:19:06 +0000 (21:19 +0000)
committertrz <trz>
Thu, 21 Sep 2006 21:19:06 +0000 (21:19 +0000)
runtime/transport/ChangeLog
runtime/transport/relayfs.c

index 969f6fb0c9e5990d70df2526c76afc1e74a8d4c1..9163941a698a69910a7e87f1fb6805e80932d11b 100644 (file)
@@ -1,3 +1,10 @@
+2006-09-21  Tom Zanussi  <zanussi@us.ibm.com>
+       
+       * relayfs.c (_stp_get_relay_root): Call new mutex lock/unlock
+       wrappers instead.
+       (_stp_lock_inode): New.
+       (_stp_unlock_inode): New.
+
 2006-09-19  Tom Zanussi  <zanussi@us.ibm.com>
        
        * procfs.c (_stp_get_proc_root): Removed.
index defe00878bc20b1477e1d00f6dcb5c84893ceb88..1b616b7efc6aa0083e8e90f496891c02dadf96e1 100644 (file)
@@ -137,6 +137,24 @@ static void _stp_remove_relay_dir(struct dentry *dir)
 #endif
 }
 
+static inline void _stp_lock_inode(struct inode *inode)
+{
+#ifdef DEFINE_MUTEX
+       mutex_lock(&inode->i_mutex);
+#else
+       down(&inode->i_sem);
+#endif
+}
+
+static inline void _stp_unlock_inode(struct inode *inode)
+{
+#ifdef DEFINE_MUTEX
+       mutex_unlock(&inode->i_mutex);
+#else
+       up(&inode->i_sem);
+#endif
+}
+
 static struct dentry *_stp_get_relay_root(void)
 {
        struct file_system_type *fs;
@@ -157,9 +175,9 @@ static struct dentry *_stp_get_relay_root(void)
                return NULL;
 
        sb = list_entry(fs->fs_supers.next, struct super_block, s_instances);
-       mutex_lock(&sb->s_root->d_inode->i_mutex);
+       _stp_lock_inode(sb->s_root->d_inode);
        root = lookup_one_len(dirname, sb->s_root, strlen(dirname));
-       mutex_unlock(&sb->s_root->d_inode->i_mutex);
+       _stp_unlock_inode(sb->s_root->d_inode);
        if (!IS_ERR(root))
                dput(root);
        
This page took 0.0299 seconds and 5 git commands to generate.