tst: memfs, memfs-dotnet: EaSize support

This commit is contained in:
Bill Zissimopoulos
2019-03-21 15:05:39 -07:00
parent 948254f083
commit b619dbfe97
2 changed files with 23 additions and 7 deletions

View File

@ -463,7 +463,10 @@ namespace memfs
SortedDictionary<String, EaValueData> EaMap = FileNode.GetEaMap(false);
if (null != EaMap)
{
EaMap.Clear();
FileNode.FileInfo.EaSize = 0;
}
if (IntPtr.Zero != Ea)
{
Result = SetEa(FileNode, null, Ea, EaLength);
@ -1116,15 +1119,21 @@ namespace memfs
{
FileNode FileNode = (FileNode)FileNode0;
SortedDictionary<String, EaValueData> EaMap = FileNode.GetEaMap(true);
EaValueData Data;
UInt32 EaSizePlus = 0, EaSizeMinus = 0;
if (null != EaValue)
{
EaValueData Data;
Data.EaValue = EaValue;
Data.NeedEa = NeedEa;
EaMap[EaName] = Data;
EaSizePlus = GetEaEntrySize(EaName, EaValue, NeedEa);
}
else
else if (EaMap.TryGetValue(EaName, out Data))
{
EaSizeMinus = GetEaEntrySize(EaName, Data.EaValue, Data.NeedEa);
EaMap.Remove(EaName);
}
FileNode.FileInfo.EaSize = FileNode.FileInfo.EaSize + EaSizePlus - EaSizeMinus;
return STATUS_SUCCESS;
}