inode.c (c87e8e90d0da1134e42c89dc89559f4bfe282ef9) | inode.c (cbf5676a0e0463f05e5073589f3194846dfb02e7) |
---|---|
1/* 2 * inode.c 3 * 4 * PURPOSE 5 * Inode handling routines for the OSTA-UDF(tm) filesystem. 6 * 7 * COPYRIGHT 8 * This file is distributed under the terms of the GNU General Public --- 1122 unchanged lines hidden (view full) --- 1131 make_bad_inode(inode); 1132 return; 1133 } 1134 udf_fill_inode(inode, bh); 1135 1136 brelse(bh); 1137} 1138 | 1/* 2 * inode.c 3 * 4 * PURPOSE 5 * Inode handling routines for the OSTA-UDF(tm) filesystem. 6 * 7 * COPYRIGHT 8 * This file is distributed under the terms of the GNU General Public --- 1122 unchanged lines hidden (view full) --- 1131 make_bad_inode(inode); 1132 return; 1133 } 1134 udf_fill_inode(inode, bh); 1135 1136 brelse(bh); 1137} 1138 |
1139static void udf_fill_inode_time(struct timespec *tspec, 1140 const timestamp *tstamp, 1141 struct udf_sb_info *sbi) 1142{ 1143 time_t convtime; 1144 long convtime_usec; 1145 if (udf_stamp_to_time(&convtime, &convtime_usec, 1146 lets_to_cpu(*tstamp))) { 1147 tspec->tv_sec = convtime; 1148 tspec->tv_nsec = convtime_usec * 1000; 1149 } else 1150 *tspec = sbi->s_record_time; 1151} 1152 | |
1153static void udf_fill_inode(struct inode *inode, struct buffer_head *bh) 1154{ 1155 struct fileEntry *fe; 1156 struct extendedFileEntry *efe; 1157 int offset; 1158 struct udf_sb_info *sbi = UDF_SB(inode->i_sb); 1159 struct udf_inode_info *iinfo = UDF_I(inode); 1160 --- 75 unchanged lines hidden (view full) --- 1236 1237 inode->i_mode = udf_convert_permissions(fe); 1238 inode->i_mode &= ~UDF_SB(inode->i_sb)->s_umask; 1239 1240 if (iinfo->i_efe == 0) { 1241 inode->i_blocks = le64_to_cpu(fe->logicalBlocksRecorded) << 1242 (inode->i_sb->s_blocksize_bits - 9); 1243 | 1139static void udf_fill_inode(struct inode *inode, struct buffer_head *bh) 1140{ 1141 struct fileEntry *fe; 1142 struct extendedFileEntry *efe; 1143 int offset; 1144 struct udf_sb_info *sbi = UDF_SB(inode->i_sb); 1145 struct udf_inode_info *iinfo = UDF_I(inode); 1146 --- 75 unchanged lines hidden (view full) --- 1222 1223 inode->i_mode = udf_convert_permissions(fe); 1224 inode->i_mode &= ~UDF_SB(inode->i_sb)->s_umask; 1225 1226 if (iinfo->i_efe == 0) { 1227 inode->i_blocks = le64_to_cpu(fe->logicalBlocksRecorded) << 1228 (inode->i_sb->s_blocksize_bits - 9); 1229 |
1244 udf_fill_inode_time(&inode->i_atime, &fe->accessTime, sbi); 1245 udf_fill_inode_time(&inode->i_mtime, &fe->modificationTime, 1246 sbi); 1247 udf_fill_inode_time(&inode->i_ctime, &fe->attrTime, sbi); | 1230 if (!udf_stamp_to_time(&inode->i_atime, 1231 lets_to_cpu(fe->accessTime))) 1232 inode->i_atime = sbi->s_record_time; |
1248 | 1233 |
1234 if (!udf_stamp_to_time(&inode->i_mtime, 1235 lets_to_cpu(fe->modificationTime))) 1236 inode->i_mtime = sbi->s_record_time; 1237 1238 if (!udf_stamp_to_time(&inode->i_ctime, 1239 lets_to_cpu(fe->attrTime))) 1240 inode->i_ctime = sbi->s_record_time; 1241 |
|
1249 iinfo->i_unique = le64_to_cpu(fe->uniqueID); 1250 iinfo->i_lenEAttr = le32_to_cpu(fe->lengthExtendedAttr); 1251 iinfo->i_lenAlloc = le32_to_cpu(fe->lengthAllocDescs); 1252 offset = sizeof(struct fileEntry) + iinfo->i_lenEAttr; 1253 } else { 1254 inode->i_blocks = le64_to_cpu(efe->logicalBlocksRecorded) << 1255 (inode->i_sb->s_blocksize_bits - 9); 1256 | 1242 iinfo->i_unique = le64_to_cpu(fe->uniqueID); 1243 iinfo->i_lenEAttr = le32_to_cpu(fe->lengthExtendedAttr); 1244 iinfo->i_lenAlloc = le32_to_cpu(fe->lengthAllocDescs); 1245 offset = sizeof(struct fileEntry) + iinfo->i_lenEAttr; 1246 } else { 1247 inode->i_blocks = le64_to_cpu(efe->logicalBlocksRecorded) << 1248 (inode->i_sb->s_blocksize_bits - 9); 1249 |
1257 udf_fill_inode_time(&inode->i_atime, &efe->accessTime, sbi); 1258 udf_fill_inode_time(&inode->i_mtime, &efe->modificationTime, 1259 sbi); 1260 udf_fill_inode_time(&iinfo->i_crtime, &efe->createTime, sbi); 1261 udf_fill_inode_time(&inode->i_ctime, &efe->attrTime, sbi); | 1250 if (!udf_stamp_to_time(&inode->i_atime, 1251 lets_to_cpu(efe->accessTime))) 1252 inode->i_atime = sbi->s_record_time; |
1262 | 1253 |
1254 if (!udf_stamp_to_time(&inode->i_mtime, 1255 lets_to_cpu(efe->modificationTime))) 1256 inode->i_mtime = sbi->s_record_time; 1257 1258 if (!udf_stamp_to_time(&iinfo->i_crtime, 1259 lets_to_cpu(efe->createTime))) 1260 iinfo->i_crtime = sbi->s_record_time; 1261 1262 if (!udf_stamp_to_time(&inode->i_ctime, 1263 lets_to_cpu(efe->attrTime))) 1264 inode->i_ctime = sbi->s_record_time; 1265 |
|
1263 iinfo->i_unique = le64_to_cpu(efe->uniqueID); 1264 iinfo->i_lenEAttr = le32_to_cpu(efe->lengthExtendedAttr); 1265 iinfo->i_lenAlloc = le32_to_cpu(efe->lengthAllocDescs); 1266 offset = sizeof(struct extendedFileEntry) + 1267 iinfo->i_lenEAttr; 1268 } 1269 1270 switch (fe->icbTag.fileType) { --- 788 unchanged lines hidden --- | 1266 iinfo->i_unique = le64_to_cpu(efe->uniqueID); 1267 iinfo->i_lenEAttr = le32_to_cpu(efe->lengthExtendedAttr); 1268 iinfo->i_lenAlloc = le32_to_cpu(efe->lengthAllocDescs); 1269 offset = sizeof(struct extendedFileEntry) + 1270 iinfo->i_lenEAttr; 1271 } 1272 1273 switch (fe->icbTag.fileType) { --- 788 unchanged lines hidden --- |