Skip to content

Commit 91a5698

Browse files
committed
Merge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6
* 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: PM / Hibernate: Replace bdget call with simple atomic_inc of i_count PM / ACPI: HP G7000 Notebook needs a SCI_EN resume quirk
2 parents 084bad9 + dddac6a commit 91a5698

File tree

4 files changed

+21
-2
lines changed

4 files changed

+21
-2
lines changed

drivers/acpi/sleep.c

+8
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,14 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
397397
},
398398
},
399399
{
400+
.callback = init_set_sci_en_on_resume,
401+
.ident = "Hewlett-Packard HP G7000 Notebook PC",
402+
.matches = {
403+
DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
404+
DMI_MATCH(DMI_PRODUCT_NAME, "HP G7000 Notebook PC"),
405+
},
406+
},
407+
{
400408
.callback = init_old_suspend_ordering,
401409
.ident = "Panasonic CF51-2L",
402410
.matches = {

fs/block_dev.c

+10
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,16 @@ struct block_device *bdget(dev_t dev)
564564

565565
EXPORT_SYMBOL(bdget);
566566

567+
/**
568+
* bdgrab -- Grab a reference to an already referenced block device
569+
* @bdev: Block device to grab a reference to.
570+
*/
571+
struct block_device *bdgrab(struct block_device *bdev)
572+
{
573+
atomic_inc(&bdev->bd_inode->i_count);
574+
return bdev;
575+
}
576+
567577
long nr_blockdev_pages(void)
568578
{
569579
struct block_device *bdev;

include/linux/fs.h

+1
Original file line numberDiff line numberDiff line change
@@ -1946,6 +1946,7 @@ extern void putname(const char *name);
19461946
extern int register_blkdev(unsigned int, const char *);
19471947
extern void unregister_blkdev(unsigned int, const char *);
19481948
extern struct block_device *bdget(dev_t);
1949+
extern struct block_device *bdgrab(struct block_device *bdev);
19491950
extern void bd_set_size(struct block_device *, loff_t size);
19501951
extern void bd_forget(struct inode *inode);
19511952
extern void bdput(struct block_device *);

mm/swapfile.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -753,7 +753,7 @@ int swap_type_of(dev_t device, sector_t offset, struct block_device **bdev_p)
753753

754754
if (!bdev) {
755755
if (bdev_p)
756-
*bdev_p = bdget(sis->bdev->bd_dev);
756+
*bdev_p = bdgrab(sis->bdev);
757757

758758
spin_unlock(&swap_lock);
759759
return i;
@@ -765,7 +765,7 @@ int swap_type_of(dev_t device, sector_t offset, struct block_device **bdev_p)
765765
struct swap_extent, list);
766766
if (se->start_block == offset) {
767767
if (bdev_p)
768-
*bdev_p = bdget(sis->bdev->bd_dev);
768+
*bdev_p = bdgrab(sis->bdev);
769769

770770
spin_unlock(&swap_lock);
771771
bdput(bdev);

0 commit comments

Comments
 (0)