[patch] sched: fix scheduling latencies in NTFS mount

From: Ingo Molnar
Date: Tue Sep 14 2004 - 08:10:30 EST



this patch fixes scheduling latencies in the NTFS mount path. We are
dropping the BKL because the code itself is using the ntfs_lock
semaphore which provides safe locking.

has been tested as part of the -VP patchset.

Ingo

this patch fixes scheduling latencies in the NTFS mount path. We are
dropping the BKL because the code itself is using the ntfs_lock
semaphore which provides safe locking.

has been tested as part of the -VP patchset.

Signed-off-by: Ingo Molnar <mingo@xxxxxxx>

--- linux/fs/ntfs/super.c.orig
+++ linux/fs/ntfs/super.c
@@ -29,6 +29,7 @@
#include <linux/buffer_head.h>
#include <linux/vfs.h>
#include <linux/moduleparam.h>
+#include <linux/smp_lock.h>

#include "ntfs.h"
#include "sysctl.h"
@@ -2288,6 +2289,8 @@ static int ntfs_fill_super(struct super_
vol->fmask = 0177;
vol->dmask = 0077;

+ unlock_kernel();
+
/* Important to get the mount options dealt with now. */
if (!parse_options(vol, (char*)opt))
goto err_out_now;
@@ -2424,6 +2427,7 @@ static int ntfs_fill_super(struct super_
}
up(&ntfs_lock);
sb->s_export_op = &ntfs_export_ops;
+ lock_kernel();
return 0;
}
ntfs_error(sb, "Failed to allocate root directory.");
@@ -2527,6 +2531,7 @@ iput_tmp_ino_err_out_now:
}
/* Errors at this stage are irrelevant. */
err_out_now:
+ lock_kernel();
sb->s_fs_info = NULL;
kfree(vol);
ntfs_debug("Failed, returning -EINVAL.");