diff --git a/libntfs-3g/ea.c b/libntfs-3g/ea.c index 32cccdad..f03378bc 100644 --- a/libntfs-3g/ea.c +++ b/libntfs-3g/ea.c @@ -293,12 +293,11 @@ int ntfs_set_ntfs_ea(ntfs_inode *ni, const char *value, size_t size, int flags) } } /* - * EA and REPARSE_POINT exclude each other - * see http://msdn.microsoft.com/en-us/library/windows/desktop/aa364404(v=vs.85).aspx - * Also return EINVAL if REPARSE_POINT is present. + * EA and REPARSE_POINT compatibility not checked any more, + * required by Windows 10, but having both may lead to + * problems with earlier versions. */ - if (ok - && !ntfs_attr_exist(ni, AT_REPARSE_POINT, AT_UNNAMED,0)) { + if (ok) { ea_info.ea_length = cpu_to_le16(ea_packed); ea_info.need_ea_count = cpu_to_le16(ea_count); ea_info.ea_query_length = cpu_to_le32(nextoffs); diff --git a/libntfs-3g/reparse.c b/libntfs-3g/reparse.c index d8415aa5..fbdc7ca1 100644 --- a/libntfs-3g/reparse.c +++ b/libntfs-3g/reparse.c @@ -1197,11 +1197,12 @@ int ntfs_set_ntfs_reparse_data(ntfs_inode *ni, ntfs_index_context *xr; res = 0; - /* reparse data is not compatible with EA */ - if (ni - && !ntfs_attr_exist(ni, AT_EA_INFORMATION, AT_UNNAMED, 0) - && !ntfs_attr_exist(ni, AT_EA, AT_UNNAMED, 0) - && valid_reparse_data(ni, (const REPARSE_POINT*)value, size)) { + /* + * reparse data compatibily with EA is not checked + * any more, it is required by Windows 10, but may + * lead to problems with earlier versions. + */ + if (ni && valid_reparse_data(ni, (const REPARSE_POINT*)value, size)) { xr = open_reparse_index(ni->vol); if (xr) { if (!ntfs_attr_exist(ni,AT_REPARSE_POINT,