Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 119538 | Differences between
and this patch

Collapse All | Expand All

(-)a/subfs.c (-1 / +18 lines)
Lines 25-30 Link Here
25
#include <asm/signal.h>
25
#include <asm/signal.h>
26
#include <linux/signal.h>
26
#include <linux/signal.h>
27
#include <linux/sched.h>
27
#include <linux/sched.h>
28
#include <linux/version.h>
28
29
29
#include "subfs.h"
30
#include "subfs.h"
30
31
Lines 221-234 Link Here
221
	struct vfsmount *child;
222
	struct vfsmount *child;
222
223
223
	/* This is ugly, but prevents a lockup during mount. */
224
	/* This is ugly, but prevents a lockup during mount. */
225
226
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
227
	mutex_unlock(&dir->i_mutex);
228
#else
224
	up(&dir->i_sem);
229
	up(&dir->i_sem);
230
#endif
231
225
	if (down_interruptible(&sfs_mnt->sem)) {
232
	if (down_interruptible(&sfs_mnt->sem)) {
226
		down(&dir->i_sem);/*put the dir sem back down if interrupted*/
233
234
# if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
235
		mutex_lock(&dir->i_mutex); /*put the dir sem back down if interrupted*/
236
#else
237
		down(&dir->i_sem); /*put the dir sem back down if interrupted*/
238
#endif
227
		return ERR_PTR(-ERESTARTSYS);
239
		return ERR_PTR(-ERESTARTSYS);
228
	}
240
	}
229
	child = get_child_mount(sfs_mnt);
241
	child = get_child_mount(sfs_mnt);
230
	up(&sfs_mnt->sem);
242
	up(&sfs_mnt->sem);
243
244
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
245
	mutex_lock(&dir->i_mutex); /*put the dir sem back down if interrupted*/
246
#else
231
	down(&dir->i_sem);
247
	down(&dir->i_sem);
248
#endif
232
	if (IS_ERR(child))
249
	if (IS_ERR(child))
233
		return (void *) child;
250
		return (void *) child;
234
	subfs_send_signal();
251
	subfs_send_signal();

Return to bug 119538