]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] md: Use bd_disk->private data instead of bd_inode->u.generic_ip
authorAndrew Morton <akpm@osdl.org>
Tue, 20 Jan 2004 11:13:10 +0000 (03:13 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Tue, 20 Jan 2004 11:13:10 +0000 (03:13 -0800)
From: NeilBrown <neilb@cse.unsw.edu.au>

..to access 'mddev' from the inode pointer.  This is already set up for us.

drivers/md/md.c

index c4a0c957464f3cf535a0cbcb67bdba1b2df77709..8f3043547721ade6fdc9a4c54390e2c0b9a5a344 100644 (file)
@@ -2410,7 +2410,7 @@ static int md_ioctl(struct inode *inode, struct file *file,
         * Commands creating/starting a new array:
         */
 
-       mddev = inode->i_bdev->bd_inode->u.generic_ip;
+       mddev = inode->i_bdev->bd_disk->private_data;
 
        if (!mddev) {
                BUG();
@@ -2602,29 +2602,26 @@ abort:
 static int md_open(struct inode *inode, struct file *file)
 {
        /*
-        * Succeed if we can find or allocate a mddev structure.
+        * Succeed if we can lock the mddev, which confirms that
+        * it isn't being stopped right now.
         */
-       mddev_t *mddev = mddev_find(iminor(inode));
-       int err = -ENOMEM;
-
-       if (!mddev)
-               goto out;
+       mddev_t *mddev = inode->i_bdev->bd_disk->private_data;
+       int err;
 
        if ((err = mddev_lock(mddev)))
-               goto put;
+               goto out;
 
        err = 0;
+       mddev_get(mddev);
        mddev_unlock(mddev);
-       inode->i_bdev->bd_inode->u.generic_ip = mddev_get(mddev);
- put:
-       mddev_put(mddev);
+
  out:
        return err;
 }
 
 static int md_release(struct inode *inode, struct file * file)
 {
-       mddev_t *mddev = inode->i_bdev->bd_inode->u.generic_ip;
+       mddev_t *mddev = inode->i_bdev->bd_disk->private_data;
 
        if (!mddev)
                BUG();