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

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

Advertisement

Kernel v2.4.17-rc2 /fs/block_dev.c

Filename:/fs/block_dev.c
Lines Added:6
Lines Deleted:2
Also changed in: (Previous) 2.4.17-rc1  2.4.17-pre8  2.4.17-pre7  2.4.17-pre6  2.4.15-greased-turkey  2.4.15-pre9 
(Following) 2.4.17  2.4.18-pre4  2.4.18-pre5  2.4.18-pre6  2.4.18-pre7  2.4.18-pre8 

Location
[  2.4.17-rc2
  [  fs
     o  block_dev.c

Patch

diff -Naur -X /home/marcelo/lib/dontdiff linux-2.4.16/fs/block_dev.c linux/fs/block_dev.c
--- linux-2.4.16/fs/block_dev.c   Wed Nov 21 22:07:25 2001
+++ linux/fs/block_dev.c   Tue Dec 18 20:13:28 2001
@@ -234,7 +234,7 @@
 #define HASH_SIZE   (1UL << HASH_BITS)
 #define HASH_MASK   (HASH_SIZE-1)
 static struct list_head bdev_hashtable[HASH_SIZE];
-static spinlock_t bdev_lock = SPIN_LOCK_UNLOCKED;
+static spinlock_t bdev_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
 static kmem_cache_t * bdev_cachep;
 
 #define alloc_bdev() \
@@ -329,6 +329,7 @@
          inode->i_bdev = new_bdev;
          inode->i_data.a_ops = &def_blk_aops;
          inode->i_data.gfp_mask = GFP_USER;
+         inode->i_mode = S_IFBLK;
          spin_lock(&bdev_lock);
          bdev = bdfind(dev, head);
          if (!bdev) {
@@ -498,7 +499,10 @@
 
       de = devfs_find_handle (NULL, NULL, i, MINOR (dev),
                DEVFS_SPECIAL_BLK, 0);
-      if (de) bdops = devfs_get_ops (de);
+      if (de) {
+         bdops = devfs_get_ops (de);
+         devfs_put_ops (de); /* We're running in owner module */
+      }
    }
    if (bdops == NULL)
       return 0;


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