}
return NT_STATUS_OK;
}
+
+
+/*
+ normalise a file attribute
+*/
+uint32_t pvfs_attrib_normalise(uint32_t attrib)
+{
+ if (attrib == 0) {
+ attrib = FILE_ATTRIBUTE_NORMAL;
+ }
+ if (attrib != FILE_ATTRIBUTE_NORMAL) {
+ attrib &= ~FILE_ATTRIBUTE_NORMAL;
+ }
+ return attrib;
+}
+
switch (attrib.version) {
case 1:
info1 = &attrib.info.info1;
- name->dos.attrib = info1->attrib;
+ name->dos.attrib = pvfs_attrib_normalise(info1->attrib);
name->dos.ea_size = info1->ea_size;
if (name->st.st_size == info1->size) {
name->dos.alloc_size = info1->alloc_size;
attrib.version = 1;
info1 = &attrib.info.info1;
+ name->dos.attrib = pvfs_attrib_normalise(name->dos.attrib);
+
info1->attrib = name->dos.attrib;
info1->ea_size = name->dos.ea_size;
info1->size = name->st.st_size;