--- buffer.c.0 Mon Dec 13 16:57:15 1999 +++ buffer.c Mon Dec 13 16:57:31 1999 @@ -347,7 +347,6 @@ struct inode * inode; int err; - lock_kernel(); err = -EBADF; file = fget(fd); if (!file) @@ -366,14 +365,15 @@ goto out_putf; /* We need to protect against concurrent writers.. */ + lock_kernel(); down(&inode->i_sem); err = file->f_op->fsync(file, dentry); up(&inode->i_sem); + unlock_kernel(); out_putf: fput(file); out: - unlock_kernel(); return err; } .