projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'asoc/fix/wm8350' into tmp
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
fs
/
block_dev.c
diff --git
a/fs/block_dev.c
b/fs/block_dev.c
index
78333a3
..
aea605c
100644
(file)
--- a/
fs/block_dev.c
+++ b/
fs/block_dev.c
@@
-318,7
+318,7
@@
static int blkdev_write_end(struct file *file, struct address_space *mapping,
/*
* private llseek:
/*
* private llseek:
- * for a block special file file
->f_path.dentry->d_inode
->i_size is zero
+ * for a block special file file
_inode(file)
->i_size is zero
* so we compute the size by hand (just as in block_read/write above)
*/
static loff_t block_llseek(struct file *file, loff_t offset, int whence)
* so we compute the size by hand (just as in block_read/write above)
*/
static loff_t block_llseek(struct file *file, loff_t offset, int whence)
@@
-1033,7
+1033,9
@@
void bd_set_size(struct block_device *bdev, loff_t size)
{
unsigned bsize = bdev_logical_block_size(bdev);
{
unsigned bsize = bdev_logical_block_size(bdev);
- bdev->bd_inode->i_size = size;
+ mutex_lock(&bdev->bd_inode->i_mutex);
+ i_size_write(bdev->bd_inode, size);
+ mutex_unlock(&bdev->bd_inode->i_mutex);
while (bsize < PAGE_CACHE_SIZE) {
if (size & bsize)
break;
while (bsize < PAGE_CACHE_SIZE) {
if (size & bsize)
break;
@@
-1118,7
+1120,7
@@
static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
}
}
}
}
- if (!ret
&& !bdev->bd_openers
) {
+ if (!ret) {
bd_set_size(bdev,(loff_t)get_capacity(disk)<<9);
bdi = blk_get_backing_dev_info(bdev);
if (bdi == NULL)
bd_set_size(bdev,(loff_t)get_capacity(disk)<<9);
bdi = blk_get_backing_dev_info(bdev);
if (bdi == NULL)