|
@@ -274,8 +274,12 @@ static ssize_t ext4_attr_show(struct kobject *kobj,
|
|
case attr_pointer_ui:
|
|
case attr_pointer_ui:
|
|
if (!ptr)
|
|
if (!ptr)
|
|
return 0;
|
|
return 0;
|
|
- return snprintf(buf, PAGE_SIZE, "%u\n",
|
|
|
|
- *((unsigned int *) ptr));
|
|
|
|
|
|
+ if (a->attr_ptr == ptr_ext4_super_block_offset)
|
|
|
|
+ return snprintf(buf, PAGE_SIZE, "%u\n",
|
|
|
|
+ le32_to_cpup(ptr));
|
|
|
|
+ else
|
|
|
|
+ return snprintf(buf, PAGE_SIZE, "%u\n",
|
|
|
|
+ *((unsigned int *) ptr));
|
|
case attr_pointer_atomic:
|
|
case attr_pointer_atomic:
|
|
if (!ptr)
|
|
if (!ptr)
|
|
return 0;
|
|
return 0;
|
|
@@ -308,7 +312,10 @@ static ssize_t ext4_attr_store(struct kobject *kobj,
|
|
ret = kstrtoul(skip_spaces(buf), 0, &t);
|
|
ret = kstrtoul(skip_spaces(buf), 0, &t);
|
|
if (ret)
|
|
if (ret)
|
|
return ret;
|
|
return ret;
|
|
- *((unsigned int *) ptr) = t;
|
|
|
|
|
|
+ if (a->attr_ptr == ptr_ext4_super_block_offset)
|
|
|
|
+ *((__le32 *) ptr) = cpu_to_le32(t);
|
|
|
|
+ else
|
|
|
|
+ *((unsigned int *) ptr) = t;
|
|
return len;
|
|
return len;
|
|
case attr_inode_readahead:
|
|
case attr_inode_readahead:
|
|
return inode_readahead_blks_store(sbi, buf, len);
|
|
return inode_readahead_blks_store(sbi, buf, len);
|