ocfs2: Fix some casting errors related to file writes
ocfs2_align_clusters_to_page_index() needs to cast the clusters shift to pgoff_t and ocfs2_file_buffered_write() needs loff_t when calculating destination start for memcpy. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
This commit is contained in:
Родитель
a00cce356b
Коммит
7c08d70c69
|
@ -1959,7 +1959,7 @@ static ssize_t ocfs2_file_buffered_write(struct file *file, loff_t *ppos,
|
|||
}
|
||||
|
||||
dst = kmap_atomic(page, KM_USER0);
|
||||
memcpy(dst + (pos & (PAGE_CACHE_SIZE - 1)), buf, bytes);
|
||||
memcpy(dst + (pos & (loff_t)(PAGE_CACHE_SIZE - 1)), buf, bytes);
|
||||
kunmap_atomic(dst, KM_USER0);
|
||||
flush_dcache_page(page);
|
||||
ocfs2_put_write_source(user_page);
|
||||
|
|
|
@ -494,16 +494,16 @@ static inline unsigned int ocfs2_page_index_to_clusters(struct super_block *sb,
|
|||
/*
|
||||
* Find the 1st page index which covers the given clusters.
|
||||
*/
|
||||
static inline unsigned long ocfs2_align_clusters_to_page_index(struct super_block *sb,
|
||||
static inline pgoff_t ocfs2_align_clusters_to_page_index(struct super_block *sb,
|
||||
u32 clusters)
|
||||
{
|
||||
unsigned int cbits = OCFS2_SB(sb)->s_clustersize_bits;
|
||||
unsigned long index = clusters;
|
||||
pgoff_t index = clusters;
|
||||
|
||||
if (PAGE_CACHE_SHIFT > cbits) {
|
||||
index = clusters >> (PAGE_CACHE_SHIFT - cbits);
|
||||
index = (pgoff_t)clusters >> (PAGE_CACHE_SHIFT - cbits);
|
||||
} else if (PAGE_CACHE_SHIFT < cbits) {
|
||||
index = clusters << (cbits - PAGE_CACHE_SHIFT);
|
||||
index = (pgoff_t)clusters << (cbits - PAGE_CACHE_SHIFT);
|
||||
}
|
||||
|
||||
return index;
|
||||
|
|
Загрузка…
Ссылка в новой задаче