diff options
-rw-r--r-- | runtime/transport/ChangeLog | 7 | ||||
-rw-r--r-- | runtime/transport/relayfs.c | 22 |
2 files changed, 27 insertions, 2 deletions
diff --git a/runtime/transport/ChangeLog b/runtime/transport/ChangeLog index 969f6fb0..9163941a 100644 --- a/runtime/transport/ChangeLog +++ b/runtime/transport/ChangeLog @@ -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. diff --git a/runtime/transport/relayfs.c b/runtime/transport/relayfs.c index defe0087..1b616b7e 100644 --- a/runtime/transport/relayfs.c +++ b/runtime/transport/relayfs.c @@ -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); |