Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.5.75 /fs/block_dev.c

Filename:/fs/block_dev.c
Lines Added:6
Lines Deleted:4
Also changed in: (Previous) 2.5.74-bk7  2.5.74-bk6  2.5.74-bk5  2.5.74-bk4  2.5.74-bk3  2.5.74-bk2 
(Following) 2.5.75-bk1  2.5.75-bk2  2.5.75-bk3 

Location
[  2.5.75
  [  fs
     o  block_dev.c

Patch

diff -Nru a/fs/block_dev.c b/fs/block_dev.c
--- a/fs/block_dev.c   Thu Jul 10 13:16:29 2003
+++ b/fs/block_dev.c   Thu Jul 10 13:16:29 2003
@@ -155,11 +155,13 @@
  */
 static loff_t block_llseek(struct file *file, loff_t offset, int origin)
 {
-   /* ewww */
-   loff_t size = file->f_dentry->d_inode->i_bdev->bd_inode->i_size;
+   struct inode *bd_inode;
+   loff_t size;
    loff_t retval;
 
-   lock_kernel();
+   bd_inode = file->f_dentry->d_inode->i_bdev->bd_inode;
+   down(&bd_inode->i_sem);
+   size = bd_inode->i_size;
 
    switch (origin) {
       case 2:
@@ -175,7 +177,7 @@
       }
       retval = offset;
    }
-   unlock_kernel();
+   up(&bd_inode->i_sem);
    return retval;
 }
    


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.