Signed-off-by: Goldwyn Rodrigues <[email protected]> --- .../qib_0000_dcache_lock-and-mount-changes.patch | 57 ++++++++++++++++++++ 1 files changed, 57 insertions(+), 0 deletions(-) create mode 100644 kernel_patches/backport/3.0_sles11sp2/qib_0000_dcache_lock-and-mount-changes.patch
diff --git a/kernel_patches/backport/3.0_sles11sp2/qib_0000_dcache_lock-and-mount-changes.patch b/kernel_patches/backport/3.0_sles11sp2/qib_0000_dcache_lock-and-mount-changes.patch new file mode 100644 index 0000000..17bbdf2 --- /dev/null +++ b/kernel_patches/backport/3.0_sles11sp2/qib_0000_dcache_lock-and-mount-changes.patch @@ -0,0 +1,57 @@ +From: Goldwyn Rodrigues <[email protected]> +Subject: qib: dcache_lock and mount changes + +Index: ofa_kernel-1.5.4.1/drivers/infiniband/hw/qib/qib_fs.c +=================================================================== +--- ofa_kernel-1.5.4.1.orig/drivers/infiniband/hw/qib/qib_fs.c ++++ ofa_kernel-1.5.4.1/drivers/infiniband/hw/qib/qib_fs.c +@@ -386,17 +386,14 @@ static int remove_file(struct dentry *pa + goto bail; + } + +- spin_lock(&dcache_lock); + spin_lock(&tmp->d_lock); + if (!(d_unhashed(tmp) && tmp->d_inode)) { +- dget_locked(tmp); ++ dget_dlock(tmp); + __d_drop(tmp); + spin_unlock(&tmp->d_lock); +- spin_unlock(&dcache_lock); + simple_unlink(parent->d_inode, tmp); + } else { + spin_unlock(&tmp->d_lock); +- spin_unlock(&dcache_lock); + } + + ret = 0; +@@ -486,14 +483,14 @@ bail: + return ret; + } + +-static int qibfs_get_sb(struct file_system_type *fs_type, int flags, +- const char *dev_name, void *data, struct vfsmount *mnt) ++static struct dentry *qibfs_mount(struct file_system_type *fs_type, int flags, ++ const char *dev_name, void *data) + { +- int ret = get_sb_single(fs_type, flags, data, +- qibfs_fill_super, mnt); +- if (ret >= 0) +- qib_super = mnt->mnt_sb; +- return ret; ++ struct dentry *ret; ++ ret = mount_single(fs_type, flags, data, qibfs_fill_super); ++ if (!IS_ERR(ret)) ++ qib_super = ret->d_sb; ++ return ret; + } + + static void qibfs_kill_super(struct super_block *s) +@@ -534,7 +531,7 @@ int qibfs_remove(struct qib_devdata *dd) + static struct file_system_type qibfs_fs_type = { + .owner = THIS_MODULE, + .name = "ipathfs", +- .get_sb = qibfs_get_sb, ++ .mount = qibfs_mount, + .kill_sb = qibfs_kill_super, + }; + -- 1.7.7 -- Goldwyn -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
