|
@@ -622,7 +622,6 @@ static int ufs1_read_inode(struct inode *inode, struct ufs_inode *ufs_inode)
|
|
struct ufs_inode_info *ufsi = UFS_I(inode);
|
|
struct ufs_inode_info *ufsi = UFS_I(inode);
|
|
struct super_block *sb = inode->i_sb;
|
|
struct super_block *sb = inode->i_sb;
|
|
mode_t mode;
|
|
mode_t mode;
|
|
- unsigned i;
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
* Copy data to the in-core inode.
|
|
* Copy data to the in-core inode.
|
|
@@ -655,11 +654,11 @@ static int ufs1_read_inode(struct inode *inode, struct ufs_inode *ufs_inode)
|
|
|
|
|
|
|
|
|
|
if (S_ISCHR(mode) || S_ISBLK(mode) || inode->i_blocks) {
|
|
if (S_ISCHR(mode) || S_ISBLK(mode) || inode->i_blocks) {
|
|
- for (i = 0; i < (UFS_NDADDR + UFS_NINDIR); i++)
|
|
|
|
- ufsi->i_u1.i_data[i] = ufs_inode->ui_u2.ui_addr.ui_db[i];
|
|
|
|
|
|
+ memcpy(ufsi->i_u1.i_data, &ufs_inode->ui_u2.ui_addr,
|
|
|
|
+ sizeof(ufs_inode->ui_u2.ui_addr));
|
|
} else {
|
|
} else {
|
|
- for (i = 0; i < (UFS_NDADDR + UFS_NINDIR) * 4; i++)
|
|
|
|
- ufsi->i_u1.i_symlink[i] = ufs_inode->ui_u2.ui_symlink[i];
|
|
|
|
|
|
+ memcpy(ufsi->i_u1.i_symlink, ufs_inode->ui_u2.ui_symlink,
|
|
|
|
+ sizeof(ufs_inode->ui_u2.ui_symlink));
|
|
}
|
|
}
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -669,7 +668,6 @@ static int ufs2_read_inode(struct inode *inode, struct ufs2_inode *ufs2_inode)
|
|
struct ufs_inode_info *ufsi = UFS_I(inode);
|
|
struct ufs_inode_info *ufsi = UFS_I(inode);
|
|
struct super_block *sb = inode->i_sb;
|
|
struct super_block *sb = inode->i_sb;
|
|
mode_t mode;
|
|
mode_t mode;
|
|
- unsigned i;
|
|
|
|
|
|
|
|
UFSD("Reading ufs2 inode, ino %lu\n", inode->i_ino);
|
|
UFSD("Reading ufs2 inode, ino %lu\n", inode->i_ino);
|
|
/*
|
|
/*
|
|
@@ -704,12 +702,11 @@ static int ufs2_read_inode(struct inode *inode, struct ufs2_inode *ufs2_inode)
|
|
*/
|
|
*/
|
|
|
|
|
|
if (S_ISCHR(mode) || S_ISBLK(mode) || inode->i_blocks) {
|
|
if (S_ISCHR(mode) || S_ISBLK(mode) || inode->i_blocks) {
|
|
- for (i = 0; i < (UFS_NDADDR + UFS_NINDIR); i++)
|
|
|
|
- ufsi->i_u1.u2_i_data[i] =
|
|
|
|
- ufs2_inode->ui_u2.ui_addr.ui_db[i];
|
|
|
|
|
|
+ memcpy(ufsi->i_u1.u2_i_data, &ufs2_inode->ui_u2.ui_addr,
|
|
|
|
+ sizeof(ufs2_inode->ui_u2.ui_addr));
|
|
} else {
|
|
} else {
|
|
- for (i = 0; i < (UFS_NDADDR + UFS_NINDIR) * 4; i++)
|
|
|
|
- ufsi->i_u1.i_symlink[i] = ufs2_inode->ui_u2.ui_symlink[i];
|
|
|
|
|
|
+ memcpy(ufsi->i_u1.i_symlink, ufs2_inode->ui_u2.ui_symlink,
|
|
|
|
+ sizeof(ufs2_inode->ui_u2.ui_symlink));
|
|
}
|
|
}
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -781,7 +778,6 @@ static void ufs1_update_inode(struct inode *inode, struct ufs_inode *ufs_inode)
|
|
{
|
|
{
|
|
struct super_block *sb = inode->i_sb;
|
|
struct super_block *sb = inode->i_sb;
|
|
struct ufs_inode_info *ufsi = UFS_I(inode);
|
|
struct ufs_inode_info *ufsi = UFS_I(inode);
|
|
- unsigned i;
|
|
|
|
|
|
|
|
ufs_inode->ui_mode = cpu_to_fs16(sb, inode->i_mode);
|
|
ufs_inode->ui_mode = cpu_to_fs16(sb, inode->i_mode);
|
|
ufs_inode->ui_nlink = cpu_to_fs16(sb, inode->i_nlink);
|
|
ufs_inode->ui_nlink = cpu_to_fs16(sb, inode->i_nlink);
|
|
@@ -809,12 +805,12 @@ static void ufs1_update_inode(struct inode *inode, struct ufs_inode *ufs_inode)
|
|
/* ufs_inode->ui_u2.ui_addr.ui_db[0] = cpu_to_fs32(sb, inode->i_rdev); */
|
|
/* ufs_inode->ui_u2.ui_addr.ui_db[0] = cpu_to_fs32(sb, inode->i_rdev); */
|
|
ufs_inode->ui_u2.ui_addr.ui_db[0] = ufsi->i_u1.i_data[0];
|
|
ufs_inode->ui_u2.ui_addr.ui_db[0] = ufsi->i_u1.i_data[0];
|
|
} else if (inode->i_blocks) {
|
|
} else if (inode->i_blocks) {
|
|
- for (i = 0; i < (UFS_NDADDR + UFS_NINDIR); i++)
|
|
|
|
- ufs_inode->ui_u2.ui_addr.ui_db[i] = ufsi->i_u1.i_data[i];
|
|
|
|
|
|
+ memcpy(&ufs_inode->ui_u2.ui_addr, ufsi->i_u1.i_data,
|
|
|
|
+ sizeof(ufs_inode->ui_u2.ui_addr));
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
- for (i = 0; i < (UFS_NDADDR + UFS_NINDIR) * 4; i++)
|
|
|
|
- ufs_inode->ui_u2.ui_symlink[i] = ufsi->i_u1.i_symlink[i];
|
|
|
|
|
|
+ memcpy(&ufs_inode->ui_u2.ui_symlink, ufsi->i_u1.i_symlink,
|
|
|
|
+ sizeof(ufs_inode->ui_u2.ui_symlink));
|
|
}
|
|
}
|
|
|
|
|
|
if (!inode->i_nlink)
|
|
if (!inode->i_nlink)
|
|
@@ -825,7 +821,6 @@ static void ufs2_update_inode(struct inode *inode, struct ufs2_inode *ufs_inode)
|
|
{
|
|
{
|
|
struct super_block *sb = inode->i_sb;
|
|
struct super_block *sb = inode->i_sb;
|
|
struct ufs_inode_info *ufsi = UFS_I(inode);
|
|
struct ufs_inode_info *ufsi = UFS_I(inode);
|
|
- unsigned i;
|
|
|
|
|
|
|
|
UFSD("ENTER\n");
|
|
UFSD("ENTER\n");
|
|
ufs_inode->ui_mode = cpu_to_fs16(sb, inode->i_mode);
|
|
ufs_inode->ui_mode = cpu_to_fs16(sb, inode->i_mode);
|
|
@@ -850,11 +845,11 @@ static void ufs2_update_inode(struct inode *inode, struct ufs2_inode *ufs_inode)
|
|
/* ufs_inode->ui_u2.ui_addr.ui_db[0] = cpu_to_fs32(sb, inode->i_rdev); */
|
|
/* ufs_inode->ui_u2.ui_addr.ui_db[0] = cpu_to_fs32(sb, inode->i_rdev); */
|
|
ufs_inode->ui_u2.ui_addr.ui_db[0] = ufsi->i_u1.u2_i_data[0];
|
|
ufs_inode->ui_u2.ui_addr.ui_db[0] = ufsi->i_u1.u2_i_data[0];
|
|
} else if (inode->i_blocks) {
|
|
} else if (inode->i_blocks) {
|
|
- for (i = 0; i < (UFS_NDADDR + UFS_NINDIR); i++)
|
|
|
|
- ufs_inode->ui_u2.ui_addr.ui_db[i] = ufsi->i_u1.u2_i_data[i];
|
|
|
|
|
|
+ memcpy(&ufs_inode->ui_u2.ui_addr, ufsi->i_u1.u2_i_data,
|
|
|
|
+ sizeof(ufs_inode->ui_u2.ui_addr));
|
|
} else {
|
|
} else {
|
|
- for (i = 0; i < (UFS_NDADDR + UFS_NINDIR) * 4; i++)
|
|
|
|
- ufs_inode->ui_u2.ui_symlink[i] = ufsi->i_u1.i_symlink[i];
|
|
|
|
|
|
+ memcpy(&ufs_inode->ui_u2.ui_symlink, ufsi->i_u1.i_symlink,
|
|
|
|
+ sizeof(ufs_inode->ui_u2.ui_symlink));
|
|
}
|
|
}
|
|
|
|
|
|
if (!inode->i_nlink)
|
|
if (!inode->i_nlink)
|