if (dsea)
{
- init_special_inode(inode, inode->i_mode,
- ((le32_to_cpu(dsea->majorDeviceIdent)) << 8) |
- (le32_to_cpu(dsea->minorDeviceIdent) & 0xFF));
+ init_special_inode(inode, inode->i_mode, MKDEV(
+ le32_to_cpu(dsea->majorDeviceIdent),
+ le32_to_cpu(dsea->minorDeviceIdent)
+ ));
/* Developer ID ??? */
udf_release_data(tbh);
}
strcpy(eid->ident, UDF_ID_DEVELOPER);
eid->identSuffix[0] = UDF_OS_CLASS_UNIX;
eid->identSuffix[1] = UDF_OS_ID_LINUX;
- dsea->majorDeviceIdent = inode->i_rdev >> 8;
- dsea->minorDeviceIdent = inode->i_rdev & 0xFF;
+ dsea->majorDeviceIdent = cpu_to_le32(imajor(inode));
+ dsea->minorDeviceIdent = cpu_to_le32(iminor(inode));
mark_buffer_dirty_inode(tbh, inode);
udf_release_data(tbh);
}