Loading fs/ocfs2/cluster/heartbeat.c +10 −18 Original line number Original line Diff line number Diff line Loading @@ -1766,7 +1766,6 @@ static ssize_t o2hb_region_dev_store(struct config_item *item, int sectsize; int sectsize; char *p = (char *)page; char *p = (char *)page; struct fd f; struct fd f; struct inode *inode; ssize_t ret = -EINVAL; ssize_t ret = -EINVAL; int live_threshold; int live_threshold; Loading @@ -1793,20 +1792,16 @@ static ssize_t o2hb_region_dev_store(struct config_item *item, reg->hr_block_bytes == 0) reg->hr_block_bytes == 0) goto out2; goto out2; inode = igrab(f.file->f_mapping->host); if (!S_ISBLK(f.file->f_mapping->host->i_mode)) if (inode == NULL) goto out2; goto out2; if (!S_ISBLK(inode->i_mode)) reg->hr_bdev = blkdev_get_by_dev(f.file->f_mapping->host->i_rdev, goto out3; FMODE_WRITE | FMODE_READ, NULL); if (IS_ERR(reg->hr_bdev)) { reg->hr_bdev = I_BDEV(f.file->f_mapping->host); ret = PTR_ERR(reg->hr_bdev); ret = blkdev_get(reg->hr_bdev, FMODE_WRITE | FMODE_READ, NULL); if (ret) { reg->hr_bdev = NULL; reg->hr_bdev = NULL; goto out3; goto out2; } } inode = NULL; bdevname(reg->hr_bdev, reg->hr_dev_name); bdevname(reg->hr_bdev, reg->hr_dev_name); Loading Loading @@ -1909,16 +1904,13 @@ static ssize_t o2hb_region_dev_store(struct config_item *item, config_item_name(®->hr_item), reg->hr_dev_name); config_item_name(®->hr_item), reg->hr_dev_name); out3: out3: iput(inode); out2: fdput(f); out: if (ret < 0) { if (ret < 0) { if (reg->hr_bdev) { blkdev_put(reg->hr_bdev, FMODE_READ | FMODE_WRITE); blkdev_put(reg->hr_bdev, FMODE_READ | FMODE_WRITE); reg->hr_bdev = NULL; reg->hr_bdev = NULL; } } } out2: fdput(f); out: return ret; return ret; } } Loading Loading
fs/ocfs2/cluster/heartbeat.c +10 −18 Original line number Original line Diff line number Diff line Loading @@ -1766,7 +1766,6 @@ static ssize_t o2hb_region_dev_store(struct config_item *item, int sectsize; int sectsize; char *p = (char *)page; char *p = (char *)page; struct fd f; struct fd f; struct inode *inode; ssize_t ret = -EINVAL; ssize_t ret = -EINVAL; int live_threshold; int live_threshold; Loading @@ -1793,20 +1792,16 @@ static ssize_t o2hb_region_dev_store(struct config_item *item, reg->hr_block_bytes == 0) reg->hr_block_bytes == 0) goto out2; goto out2; inode = igrab(f.file->f_mapping->host); if (!S_ISBLK(f.file->f_mapping->host->i_mode)) if (inode == NULL) goto out2; goto out2; if (!S_ISBLK(inode->i_mode)) reg->hr_bdev = blkdev_get_by_dev(f.file->f_mapping->host->i_rdev, goto out3; FMODE_WRITE | FMODE_READ, NULL); if (IS_ERR(reg->hr_bdev)) { reg->hr_bdev = I_BDEV(f.file->f_mapping->host); ret = PTR_ERR(reg->hr_bdev); ret = blkdev_get(reg->hr_bdev, FMODE_WRITE | FMODE_READ, NULL); if (ret) { reg->hr_bdev = NULL; reg->hr_bdev = NULL; goto out3; goto out2; } } inode = NULL; bdevname(reg->hr_bdev, reg->hr_dev_name); bdevname(reg->hr_bdev, reg->hr_dev_name); Loading Loading @@ -1909,16 +1904,13 @@ static ssize_t o2hb_region_dev_store(struct config_item *item, config_item_name(®->hr_item), reg->hr_dev_name); config_item_name(®->hr_item), reg->hr_dev_name); out3: out3: iput(inode); out2: fdput(f); out: if (ret < 0) { if (ret < 0) { if (reg->hr_bdev) { blkdev_put(reg->hr_bdev, FMODE_READ | FMODE_WRITE); blkdev_put(reg->hr_bdev, FMODE_READ | FMODE_WRITE); reg->hr_bdev = NULL; reg->hr_bdev = NULL; } } } out2: fdput(f); out: return ret; return ret; } } Loading