[PATCH 13/14] PMFS: Fix a couple of missing endian conversions in inode.c
Matthew Wilcox
matthew.r.wilcox at intel.com
Mon Oct 7 09:37:57 EDT 2013
From: Matthew Wilcox <willy at linux.intel.com>
pmfs_increase_inode_table_size() was using i_size from the media directly
when it should have been swapping it first.
pmfs_truncate_del() was writing the inode number to the media in native
endian instead of little endian.
Signed-off-by: Matthew Wilcox <matthew.r.wilcox at intel.com>
---
fs/pmfs/inode.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/fs/pmfs/inode.c b/fs/pmfs/inode.c
index 3fb1a41..5e59169 100644
--- a/fs/pmfs/inode.c
+++ b/fs/pmfs/inode.c
@@ -1069,7 +1069,8 @@ static int pmfs_increase_inode_table_size(struct super_block *sb)
pmfs_add_logentry(sb, trans, pi, MAX_DATA_PER_LENTRY, LE_DATA);
errval = __pmfs_alloc_blocks(trans, sb, pi,
- pi->i_size >> sb->s_blocksize_bits, 1, true);
+ le64_to_cpup(&pi->i_size) >> sb->s_blocksize_bits,
+ 1, true);
if (errval == 0) {
u64 i_size = le64_to_cpu(pi->i_size);
@@ -1341,7 +1342,7 @@ void pmfs_truncate_del(struct inode *inode)
struct pmfs_inode_truncate_item *li_prv =
pmfs_get_truncate_item(sb, i_prv->i_ino);
pmfs_memunlock_range(sb, li_prv, sizeof(*li_prv));
- li_prv->i_next_truncate = ino_next;
+ li_prv->i_next_truncate = cpu_to_le64(ino_next);
pmfs_memlock_range(sb, li_prv, sizeof(*li_prv));
pmfs_flush_buffer(&li_prv->i_next_truncate,
sizeof(li_prv->i_next_truncate), false);
--
1.8.4.rc3
More information about the Linux-pmfs
mailing list