Ticket #11142: 0001-Set-the-archive-bit-on-new-or-modified-directory-ent.patch

File 0001-Set-the-archive-bit-on-new-or-modified-directory-ent.patch, 1.8 KB (added by MatejHorvat, 10 years ago)
  • src/add-ons/kernel/file_systems/fat/dir.c

    From b82a53bbf49c3b68428b821a383b0efe74060737 Mon Sep 17 00:00:00 2001
    From: Matej Horvat <matej.horvat@guest.arnes.si>
    Date: Tue, 19 Aug 2014 12:37:26 +0200
    Subject: [PATCH] Set the archive bit on new or modified directory entries
    
    ---
     src/add-ons/kernel/file_systems/fat/dir.c  | 2 +-
     src/add-ons/kernel/file_systems/fat/file.c | 4 ++--
     2 files changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/src/add-ons/kernel/file_systems/fat/dir.c b/src/add-ons/kernel/file_systems/fat/dir.c
    index 7d35276..17c9301 100644
    a b _create_dir_entry_(nspace *vol, vnode *dir, struct _entry_info_ *info,  
    726726    // write directory entry
    727727    diri_make_writable(&diri);
    728728    memcpy(buffer, nshort, 11);
    729     buffer[0x0b] = info->mode;
     729    buffer[0x0b] = info->mode | FAT_ARCHIVE;
    730730    memset(buffer+0xc, 0, 0x16-0xc);
    731731    i = time_t2dos(info->time);
    732732    buffer[0x16] = i & 0xff;
  • src/add-ons/kernel/file_systems/fat/file.c

    diff --git a/src/add-ons/kernel/file_systems/fat/file.c b/src/add-ons/kernel/file_systems/fat/file.c
    index d9239a3..1583b60 100644
    a b status_t write_vnode_entry(nspace *vol, vnode *node)  
    9191        return ENOENT;
    9292
    9393    diri_make_writable(&diri);
    94     buffer[0x0b] = node->mode; // file attributes
     94    buffer[0x0b] = node->mode | FAT_ARCHIVE; // file attributes
    9595
    9696    memset(buffer+0xc, 0, 0x16-0xc);
    9797    i = time_t2dos(node->st_time);
    dosfs_mkdir(fs_volume *_vol, fs_vnode *_dir, const char *name, int perms)  
    934934    memset(buffer, ' ', 11);
    935935    memset(buffer+0x20, ' ', 11);
    936936    buffer[0] = buffer[0x20] = buffer[0x21] = '.';
    937     buffer[0x0b] = buffer[0x2b] = 0x30;
     937    buffer[0x0b] = buffer[0x2b] = FAT_SUBDIR | FAT_ARCHIVE;
    938938    i = time_t2dos(dummy.st_time);
    939939    buffer[0x16] = i & 0xff;
    940940    buffer[0x17] = (i >> 8) & 0xff;