It is currently Mon, 26 Oct 2020 03:08:25 GMT



 
Author Message
 adds missed lock_kernel/unlock_kernel to reiserfs_dir_fsync().
Hi !

Bug found in reiserfs in linux-2.4.2: reiserfs_dir_fsync has no
lock_kernel/unlock_kernel calls which are required by reiserfs journal
interface functions.  It causes reserfs_panic in any attempt to fsync a
directory (on SMP machines).

Bug report was related to qmail which likes to
fsync a directory.

This trivial fix cures the problem:

--- linux.old/fs/reiserfs/dir.c Fri Mar  2 14:48:12 2001
+++ linux/fs/reiserfs/dir.c     Fri Mar  2 14:49:31 2001
@@ -51,12 +51,16 @@
   int windex ;
   struct reiserfs_transaction_handle th ;

+  lock_kernel();
+
   journal_begin(&th, dentry->d_inode->i_sb, 1) ;
   windex = push_journal_writer("dir_fsync") ;
   reiserfs_prepare_for_journal(th.t_super, SB_BUFFER_WITH_SB(th.t_super), 1) ;
   journal_mark_dirty(&th, dentry->d_inode->i_sb, SB_BUFFER_WITH_SB (dentry->d_inode->i_sb)) ;
   pop_journal_writer(windex) ;
   journal_end_sync(&th, dentry->d_inode->i_sb, 1) ;
+
+  unlock_kernel();

   return ret ;
 }

Regards,
Alex.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at   http://www.**-**.com/
Please read the FAQ at   http://www.**-**.com/



 Wed, 20 Aug 2003 01:00:07 GMT   
 
   [ 1 post ] 

Similar Threads

1. driver/sound/soundcard.c lock_kernel()/unlock_kernel()

2. kernel: down/up inside of lock_kernel/unlock_kernel?

3. What does lock_kernel and unlock_kernel actualy makes ?

4. lock_kernel check...

5. do_exit() and lock_kernel() semantics

6. lock_kernel() usage and sync_*() functions

7. lock_kernel in 2.2.0pre4

8. lock_kernel in 2.2.0pre4 w/o typo

9. Add User button missing from Control Panel

10. Missing cdrom when add new hard disk.


 
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software