From metze's work on sparse attributes. FILE_ATTRIBUTE_SPARSE is valid on get but...
[ira/wip.git] / source3 / smbd / dosmode.c
index 628f8871873c55ca9092b4fe911d658ab9fe0a0b..2c6dcd00c6cd434805a107be943517a0ed732c02 100644 (file)
@@ -318,7 +318,8 @@ static bool get_ea_dos_attribute(connection_struct *conn,
        if (S_ISDIR(smb_fname->st.st_ex_mode)) {
                dosattr |= aDIR;
        }
-       *pattr = (uint32)(dosattr & SAMBA_ATTRIBUTES_MASK);
+       /* FILE_ATTRIBUTE_SPARSE is valid on get but not on set. */
+       *pattr = (uint32)(dosattr & (SAMBA_ATTRIBUTES_MASK|FILE_ATTRIBUTE_SPARSE));
 
        DEBUG(8,("get_ea_dos_attribute returning (0x%x)", dosattr));