]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/block/rd.c
Pull bugzilla-5653 into release branch
[linux-2.6-omap-h63xx.git] / drivers / block / rd.c
index ffd6abd6d5a045f40dd98a92486e1d21ea29e81c..940bfd7951e5c1c582a672447b65dd28ff1367c7 100644 (file)
@@ -186,7 +186,8 @@ static int ramdisk_writepages(struct address_space *mapping,
  */
 static int ramdisk_set_page_dirty(struct page *page)
 {
-       SetPageDirty(page);
+       if (!TestSetPageDirty(page))
+               return 1;
        return 0;
 }
 
@@ -310,12 +311,12 @@ static int rd_ioctl(struct inode *inode, struct file *file,
         * cache
         */
        error = -EBUSY;
-       down(&bdev->bd_sem);
+       mutex_lock(&bdev->bd_mutex);
        if (bdev->bd_openers <= 2) {
                truncate_inode_pages(bdev->bd_inode->i_mapping, 0);
                error = 0;
        }
-       up(&bdev->bd_sem);
+       mutex_unlock(&bdev->bd_mutex);
        return error;
 }