From metze's work on sparse attributes. FILE_ATTRIBUTE_SPARSE is valid on get but...
authorJeremy Allison <jra@samba.org>
Mon, 20 Dec 2010 18:23:27 +0000 (10:23 -0800)
committerJeremy Allison <jra@samba.org>
Mon, 20 Dec 2010 19:11:22 +0000 (20:11 +0100)
Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Mon Dec 20 20:11:22 CET 2010 on sn-devel-104

source3/include/smb.h
source3/smbd/dosmode.c

index b87caf2da6e95df129c67bd62bc8d3133629106e..2b397cc307d568338f85c16c3effc5dc19dbbf20 100644 (file)
@@ -1211,8 +1211,7 @@ struct bitmap {
                                        FILE_ATTRIBUTE_HIDDEN|\
                                        FILE_ATTRIBUTE_SYSTEM|\
                                        FILE_ATTRIBUTE_DIRECTORY|\
-                                       FILE_ATTRIBUTE_ARCHIVE|\
-                                       FILE_ATTRIBUTE_SPARSE)
+                                       FILE_ATTRIBUTE_ARCHIVE)
 
 /* Flags - combined with attributes. */
 #define FILE_FLAG_WRITE_THROUGH    0x80000000L
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));