lock_kernel() need not be held across truncate. mm/nommu.c | 5 +---- 1 files changed, 1 insertion(+), 4 deletions(-) diff -puN mm/nommu.c~nommu-vmtruncate-no_lock_kernel mm/nommu.c --- 25/mm/nommu.c~nommu-vmtruncate-no_lock_kernel 2003-06-28 02:04:30.000000000 -0700 +++ 25-akpm/mm/nommu.c 2003-06-28 02:04:30.000000000 -0700 @@ -62,11 +62,8 @@ do_expand: inode->i_size = offset; out_truncate: - if (inode->i_op && inode->i_op->truncate) { - lock_kernel(); + if (inode->i_op && inode->i_op->truncate) inode->i_op->truncate(inode); - unlock_kernel(); - } return 0; out_sig: send_sig(SIGXFSZ, current, 0); _