19 Sep, 2020

1 commit


13 Aug, 2020

3 commits

  • If data clusters == 0, fat_ra_init() calls the ->ent_blocknr() for the
    cluster beyond ->max_clusters.

    This checks the limit before initialization to suppress the warning.

    Reported-by: syzbot+756199124937b31a9b7e@syzkaller.appspotmail.com
    Signed-off-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Link: http://lkml.kernel.org/r/87mu462sv4.fsf@mail.parknet.co.jp
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     
  • Rationale:
    Reduces attack surface on kernel devs opening the links for MITM
    as HTTPS traffic is much harder to manipulate.

    Deterministic algorithm:
    For each file:
    If not .svg:
    For each line:
    If doesn't contain `xmlns`:
    For each link, `http://[^# ]*(?:\w|/)`:
    If neither `gnu\.org/license`, nor `mozilla\.org/MPL`:
    If both the HTTP and HTTPS versions
    return 200 OK and serve the same content:
    Replace HTTP with HTTPS.

    Signed-off-by: Alexander A. Klimov
    Signed-off-by: Andrew Morton
    Acked-by: OGAWA Hirofumi
    Link: http://lkml.kernel.org/r/20200708200409.22293-1-grandmaster@al2klimov.de
    Signed-off-by: Linus Torvalds

    Alexander A. Klimov
     
  • There is no need to hold write_lock in fat_ioctl_get_attributes.
    write_lock may make an impact on concurrency of fat_ioctl_get_attributes.

    Signed-off-by: Yubo Feng
    Signed-off-by: Andrew Morton
    Acked-by: OGAWA Hirofumi
    Link: http://lkml.kernel.org/r/1593308053-12702-1-git-send-email-fengyubo3@huawei.com
    Signed-off-by: Linus Torvalds

    Yubo Feng
     

17 Jul, 2020

1 commit

  • Using uninitialized_var() is dangerous as it papers over real bugs[1]
    (or can in the future), and suppresses unrelated compiler warnings
    (e.g. "unused variable"). If the compiler thinks it is uninitialized,
    either simply initialize the variable or make compiler changes.

    In preparation for removing[2] the[3] macro[4], remove all remaining
    needless uses with the following script:

    git grep '\buninitialized_var\b' | cut -d: -f1 | sort -u | \
    xargs perl -pi -e \
    's/\buninitialized_var\(([^\)]+)\)/\1/g;
    s:\s*/\* (GCC be quiet|to make compiler happy) \*/$::g;'

    drivers/video/fbdev/riva/riva_hw.c was manually tweaked to avoid
    pathological white-space.

    No outstanding warnings were found building allmodconfig with GCC 9.3.0
    for x86_64, i386, arm64, arm, powerpc, powerpc64le, s390x, mips, sparc64,
    alpha, and m68k.

    [1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/
    [2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/
    [3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/
    [4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/

    Reviewed-by: Leon Romanovsky # drivers/infiniband and mlx4/mlx5
    Acked-by: Jason Gunthorpe # IB
    Acked-by: Kalle Valo # wireless drivers
    Reviewed-by: Chao Yu # erofs
    Signed-off-by: Kees Cook

    Kees Cook
     

05 Jun, 2020

2 commits

  • Current readahead for FAT entries is very simple but is having some flaws,
    so it is not working well for some environments. This patch improves the
    readahead more or less.

    The key points of modification are,

    - make the readahead size tunable by using bdi->ra_pages
    - care the bdi->io_pages to avoid the small size I/O request
    - update readahead window before fully exhausting

    With this patch, on slow USB connected 2TB hdd:

    [before]
    383.18sec

    [after]
    51.03sec

    Signed-off-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Tested-by: hyeongseok.kim
    Reviewed-by: hyeongseok.kim
    Link: http://lkml.kernel.org/r/87d08e1dlh.fsf@mail.parknet.co.jp
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     
  • If FAT length == 0, the image doesn't have any data. And it can be the
    cause of overlapping the root dir and FAT entries.

    Also Windows treats it as invalid format.

    Reported-by: syzbot+6f1624f937d9d6911e2d@syzkaller.appspotmail.com
    Signed-off-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Cc: Marco Elver
    Cc: Dmitry Vyukov
    Link: http://lkml.kernel.org/r/87r1wz8mrd.fsf@mail.parknet.co.jp
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     

03 Jun, 2020

3 commits

  • Pull block updates from Jens Axboe:
    "Core block changes that have been queued up for this release:

    - Remove dead blk-throttle and blk-wbt code (Guoqing)

    - Include pid in blktrace note traces (Jan)

    - Don't spew I/O errors on wouldblock termination (me)

    - Zone append addition (Johannes, Keith, Damien)

    - IO accounting improvements (Konstantin, Christoph)

    - blk-mq hardware map update improvements (Ming)

    - Scheduler dispatch improvement (Salman)

    - Inline block encryption support (Satya)

    - Request map fixes and improvements (Weiping)

    - blk-iocost tweaks (Tejun)

    - Fix for timeout failing with error injection (Keith)

    - Queue re-run fixes (Douglas)

    - CPU hotplug improvements (Christoph)

    - Queue entry/exit improvements (Christoph)

    - Move DMA drain handling to the few drivers that use it (Christoph)

    - Partition handling cleanups (Christoph)"

    * tag 'for-5.8/block-2020-06-01' of git://git.kernel.dk/linux-block: (127 commits)
    block: mark bio_wouldblock_error() bio with BIO_QUIET
    blk-wbt: rename __wbt_update_limits to wbt_update_limits
    blk-wbt: remove wbt_update_limits
    blk-throttle: remove tg_drain_bios
    blk-throttle: remove blk_throtl_drain
    null_blk: force complete for timeout request
    blk-mq: drain I/O when all CPUs in a hctx are offline
    blk-mq: add blk_mq_all_tag_iter
    blk-mq: open code __blk_mq_alloc_request in blk_mq_alloc_request_hctx
    blk-mq: use BLK_MQ_NO_TAG in more places
    blk-mq: rename BLK_MQ_TAG_FAIL to BLK_MQ_NO_TAG
    blk-mq: move more request initialization to blk_mq_rq_ctx_init
    blk-mq: simplify the blk_mq_get_request calling convention
    blk-mq: remove the bio argument to ->prepare_request
    nvme: force complete cancelled requests
    blk-mq: blk-mq: provide forced completion method
    block: fix a warning when blkdev.h is included for !CONFIG_BLOCK builds
    block: blk-crypto-fallback: remove redundant initialization of variable err
    block: reduce part_stat_lock() scope
    block: use __this_cpu_add() instead of access by smp_processor_id()
    ...

    Linus Torvalds
     
  • Merge updates from Andrew Morton:
    "A few little subsystems and a start of a lot of MM patches.

    Subsystems affected by this patch series: squashfs, ocfs2, parisc,
    vfs. With mm subsystems: slab-generic, slub, debug, pagecache, gup,
    swap, memcg, pagemap, memory-failure, vmalloc, kasan"

    * emailed patches from Andrew Morton : (128 commits)
    kasan: move kasan_report() into report.c
    mm/mm_init.c: report kasan-tag information stored in page->flags
    ubsan: entirely disable alignment checks under UBSAN_TRAP
    kasan: fix clang compilation warning due to stack protector
    x86/mm: remove vmalloc faulting
    mm: remove vmalloc_sync_(un)mappings()
    x86/mm/32: implement arch_sync_kernel_mappings()
    x86/mm/64: implement arch_sync_kernel_mappings()
    mm/ioremap: track which page-table levels were modified
    mm/vmalloc: track which page-table levels were modified
    mm: add functions to track page directory modifications
    s390: use __vmalloc_node in stack_alloc
    powerpc: use __vmalloc_node in alloc_vm_stack
    arm64: use __vmalloc_node in arch_alloc_vmap_stack
    mm: remove vmalloc_user_node_flags
    mm: switch the test_vmalloc module to use __vmalloc_node
    mm: remove __vmalloc_node_flags_caller
    mm: remove both instances of __vmalloc_node_flags
    mm: remove the prot argument to __vmalloc_node
    mm: remove the pgprot argument to __vmalloc
    ...

    Linus Torvalds
     
  • Implement the new readahead aop and convert all callers (block_dev,
    exfat, ext2, fat, gfs2, hpfs, isofs, jfs, nilfs2, ocfs2, omfs, qnx6,
    reiserfs & udf).

    The callers are all trivial except for GFS2 & OCFS2.

    Signed-off-by: Matthew Wilcox (Oracle)
    Signed-off-by: Andrew Morton
    Reviewed-by: Junxiao Bi # ocfs2
    Reviewed-by: Joseph Qi # ocfs2
    Reviewed-by: Dave Chinner
    Reviewed-by: John Hubbard
    Reviewed-by: Christoph Hellwig
    Reviewed-by: William Kucharski
    Cc: Chao Yu
    Cc: Cong Wang
    Cc: Darrick J. Wong
    Cc: Eric Biggers
    Cc: Gao Xiang
    Cc: Jaegeuk Kim
    Cc: Michal Hocko
    Cc: Zi Yan
    Cc: Johannes Thumshirn
    Cc: Miklos Szeredi
    Link: http://lkml.kernel.org/r/20200414150233.24495-17-willy@infradead.org
    Signed-off-by: Linus Torvalds

    Matthew Wilcox (Oracle)
     

02 Jun, 2020

1 commit

  • Pull uaccess/access_ok updates from Al Viro:
    "Removals of trivially pointless access_ok() calls.

    Note: the fiemap stuff was removed from the series, since they are
    duplicates with part of ext4 series carried in Ted's tree"

    * 'uaccess.access_ok' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    vmci_host: get rid of pointless access_ok()
    hfi1: get rid of pointless access_ok()
    usb: get rid of pointless access_ok() calls
    lpfc_debugfs: get rid of pointless access_ok()
    efi_test: get rid of pointless access_ok()
    drm_read(): get rid of pointless access_ok()
    via-pmu: don't bother with access_ok()
    drivers/crypto/ccp/sev-dev.c: get rid of pointless access_ok()
    omapfb: get rid of pointless access_ok() calls
    amifb: get rid of pointless access_ok() calls
    drivers/fpga/dfl-afu-dma-region.c: get rid of pointless access_ok()
    drivers/fpga/dfl-fme-pr.c: get rid of pointless access_ok()
    cm4000_cs.c cmm_ioctl(): get rid of pointless access_ok()
    nvram: drop useless access_ok()
    n_hdlc_tty_read(): remove pointless access_ok()
    tomoyo_write_control(): get rid of pointless access_ok()
    btrfs_ioctl_send(): don't bother with access_ok()
    fat_dir_ioctl(): hadn't needed that access_ok() for more than a decade...
    dlmfs_file_write(): get rid of pointless access_ok()

    Linus Torvalds
     

22 May, 2020

1 commit


10 May, 2020

1 commit


21 Apr, 2020

1 commit

  • Several references got broken due to txt to ReST conversion.

    Several of them can be automatically fixed with:

    scripts/documentation-file-ref-check --fix

    Reviewed-by: Mathieu Poirier # hwtracing/coresight/Kconfig
    Reviewed-by: Paul E. McKenney # memory-barrier.txt
    Acked-by: Alex Shi # translations/zh_CN
    Acked-by: Federico Vaga # translations/it_IT
    Acked-by: Marc Zyngier # kvm/arm64
    Signed-off-by: Mauro Carvalho Chehab
    Link: https://lore.kernel.org/r/6f919ddb83a33b5f2a63b6b5f0575737bb2b36aa.1586881715.git.mchehab+huawei@kernel.org
    Signed-off-by: Jonathan Corbet

    Mauro Carvalho Chehab
     

06 Mar, 2020

1 commit

  • When get an error in the middle of reading an inode, some fields in the
    inode might be still not initialized. And then the evict_inode path may
    access those fields via iput().

    To fix, this makes sure that inode fields are initialized.

    Reported-by: syzbot+9d82b8de2992579da5d0@syzkaller.appspotmail.com
    Signed-off-by: Andrew Morton
    Signed-off-by: OGAWA Hirofumi
    Cc:
    Link: http://lkml.kernel.org/r/871rqnreqx.fsf@mail.parknet.co.jp
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     

05 Feb, 2020

1 commit

  • Pull vfs timestamp updates from Al Viro:
    "More 64bit timestamp work"

    * 'imm.timestamp' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    kernfs: don't bother with timestamp truncation
    fs: Do not overload update_time
    fs: Delete timespec64_trunc()
    fs: ubifs: Eliminate timespec64_trunc() usage
    fs: ceph: Delete timespec64_trunc() usage
    fs: cifs: Delete usage of timespec64_trunc
    fs: fat: Eliminate timespec64_trunc() usage
    utimes: Clamp the timestamps in notify_change()

    Linus Torvalds
     

19 Dec, 2019

1 commit


09 Dec, 2019

1 commit

  • timespec64_trunc() is being deleted.

    timestamp_truncate() is the replacement api for
    timespec64_trunc. timestamp_truncate() additionally clamps
    timestamps to make sure the timestamps lie within the
    permitted range for the filesystem.

    But, fat always truncates the times locally after it obtains
    the timestamps from current_time().
    Implement a local version here along the lines of existing
    truncate functions.

    Suggested-by: Al Viro
    Signed-off-by: Deepa Dinamani
    Cc: hirofumi@mail.parknet.co.jp
    Signed-off-by: Al Viro

    Deepa Dinamani
     

23 Oct, 2019

1 commit

  • Each of these drivers has a copy of the same trivial helper function to
    convert the pointer argument and then call the native ioctl handler.

    We now have a generic implementation of that, so use it.

    Acked-by: Greg Kroah-Hartman
    Acked-by: Michael S. Tsirkin
    Acked-by: David S. Miller
    Acked-by: Jarkko Sakkinen
    Reviewed-by: Jarkko Sakkinen
    Reviewed-by: Jason Gunthorpe
    Reviewed-by: Jiri Kosina
    Reviewed-by: Stefan Hajnoczi
    Reviewed-by: Cornelia Huck
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

26 Sep, 2019

1 commit

  • brelse() tests whether its argument is NULL and then returns immediately.
    Thus the test around the call is not needed.

    This issue was detected by using the Coccinelle software.

    Link: http://lkml.kernel.org/r/cfff3b81-fb5d-af26-7b5e-724266509045@web.de
    Signed-off-by: Markus Elfring
    Acked-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Elfring
     

25 Sep, 2019

1 commit

  • If userspace reads the buffer via blockdev while mounting,
    sb_getblk()+modify can race with buffer read via blockdev.

    For example,

    FS userspace
    bh = sb_getblk()
    modify bh->b_data
    read
    ll_rw_block(bh)
    fill bh->b_data by on-disk data
    /* lost modified data by FS */
    set_buffer_uptodate(bh)
    set_buffer_uptodate(bh)

    Userspace should not use the blockdev while mounting though, the udev
    seems to be already doing this. Although I think the udev should try to
    avoid this, workaround the race by small overhead.

    Link: http://lkml.kernel.org/r/87pnk7l3sw.fsf_-_@mail.parknet.co.jp
    Signed-off-by: OGAWA Hirofumi
    Reported-by: Jan Stancek
    Tested-by: Jan Stancek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     

30 Aug, 2019

1 commit

  • Fill in the appropriate limits to avoid inconsistencies
    in the vfs cached inode times when timestamps are
    outside the permitted range.

    Some FAT variants indicate that the years after 2099 are not supported.
    Since commit 7decd1cb0305 ("fat: Fix and cleanup timestamp conversion")
    we support the full range of years that can be represented, up to 2107.

    Signed-off-by: Deepa Dinamani
    Acked-by: Jeff Layton
    Cc: hirofumi@mail.parknet.co.jp

    Deepa Dinamani
     

05 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this software is licensed under the terms of the gnu general public
    license version 2 as published by the free software foundation and
    may be copied distributed and modified under those terms this
    program is distributed in the hope that it will be useful but
    without any warranty without even the implied warranty of
    merchantability or fitness for a particular purpose see the gnu
    general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 285 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Alexios Zavras
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190529141900.642774971@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    released under gpl v2

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 15 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Steve Winslow
    Reviewed-by: Allison Randal
    Reviewed-by: Alexios Zavras
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190528171438.895196075@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

21 May, 2019

3 commits

  • Add SPDX license identifiers to all Make/Kconfig files which:

    - Have no license information of any form

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Add SPDX license identifiers to all files which:

    - Have no license information of any form

    - Have MODULE_LICENCE("GPL*") inside which was used in the initial
    scan/conversion to ignore the file

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Add SPDX license identifiers to all files which:

    - Have no license information of any form

    - Have EXPORT_.*_SYMBOL_GPL inside which was used in the
    initial scan/conversion to ignore the file

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

15 May, 2019

1 commit

  • fsync() needs to make sure the data & meta-data of file are persistent
    after the return of fsync(), even when a power-failure occurs later. In
    the case of fat-fs, the FAT belongs to the meta-data of file, so we need
    to issue a flush after the writeback of FAT instead before.

    Also bail out early when any stage of fsync fails.

    Link: http://lkml.kernel.org/r/20190409030158.136316-1-houtao1@huawei.com
    Signed-off-by: Hou Tao
    Acked-by: OGAWA Hirofumi
    Cc: Al Viro
    Cc: Jan Kara
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hou Tao
     

02 May, 2019

1 commit


08 Mar, 2019

1 commit

  • Now splice() on O_DIRECT-opened fat file will return -EFAULT, that is
    because the default .splice_write, namely default_file_splice_write(),
    will construct an ITER_KVEC iov_iter and dio_refill_pages() in dio path
    can not handle it.

    Fix it by implementing .splice_write through iter_file_splice_write().

    Spotted by xfs-tests generic/091.

    Link: http://lkml.kernel.org/r/20190210094754.56355-1-houtao1@huawei.com
    Signed-off-by: Hou Tao
    Acked-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hou Tao
     

06 Jan, 2019

1 commit

  • Merge more updates from Andrew Morton:

    - procfs updates

    - various misc bits

    - lib/ updates

    - epoll updates

    - autofs

    - fatfs

    - a few more MM bits

    * emailed patches from Andrew Morton : (58 commits)
    mm/page_io.c: fix polled swap page in
    checkpatch: add Co-developed-by to signature tags
    docs: fix Co-Developed-by docs
    drivers/base/platform.c: kmemleak ignore a known leak
    fs: don't open code lru_to_page()
    fs/: remove caller signal_pending branch predictions
    mm/: remove caller signal_pending branch predictions
    arch/arc/mm/fault.c: remove caller signal_pending_branch predictions
    kernel/sched/: remove caller signal_pending branch predictions
    kernel/locking/mutex.c: remove caller signal_pending branch predictions
    mm: select HAVE_MOVE_PMD on x86 for faster mremap
    mm: speed up mremap by 20x on large regions
    mm: treewide: remove unused address argument from pte_alloc functions
    initramfs: cleanup incomplete rootfs
    scripts/gdb: fix lx-version string output
    kernel/kcov.c: mark write_comp_data() as notrace
    kernel/sysctl: add panic_print into sysctl
    panic: add options to print system info when panic happens
    bfs: extra sanity checking and static inode bitmap
    exec: separate MM_ANONPAGES and RLIMIT_STACK accounting
    ...

    Linus Torvalds
     

05 Jan, 2019

3 commits

  • This patch introduces 3 new inline functions - is_fat12, is_fat16 and
    is_fat32, and replaces every occurrence in the code in which the FS
    variant (whether this is FAT12, FAT16 or FAT32) was previously checked
    using msdos_sb_info->fat_bits.

    Link: http://lkml.kernel.org/r/1544990640-11604-4-git-send-email-carmeli.tamir@gmail.com
    Signed-off-by: Carmeli Tamir
    Acked-by: OGAWA Hirofumi
    Reviewed-by: Sergey Senozhatsky
    Cc: Johannes Thumshirn
    Cc: Bart Van Assche
    Cc: Martin K. Petersen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Carmeli Tamir
     
  • MAX_FAT is useless in msdos_fs.h, since it uses the MSDOS_SB function
    that is defined in fat.h. So really, this macro can be only called from
    code that already includes fat.h.

    Hence, this patch moves it to fat.h, right after MSDOS_SB is defined. I
    also changed it to an inline function in order to save the double call
    to MSDOS_SB. This was suggested by joe@perches.com in the previous
    version.

    This patch is required for the next in the series, in which the variant
    (whether this is FAT12, FAT16 or FAT32) checks are replaced with new
    macros.

    Link: http://lkml.kernel.org/r/1544990640-11604-3-git-send-email-carmeli.tamir@gmail.com
    Signed-off-by: Carmeli Tamir
    Acked-by: OGAWA Hirofumi
    Reviewed-by: Sergey Senozhatsky
    Cc: Bart Van Assche
    Cc: Johannes Thumshirn
    Cc: Martin K. Petersen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Carmeli Tamir
     
  • The comment edited in this patch was the only reference to the
    FAT_FIRST_ENT macro, which is not used anymore. Moreover, the commented
    line of code does not compile with the current code.

    Since the FAT_FIRST_ENT macro checks the FAT variant in a way that the
    patch series changes, I removed it, and instead wrote a clear
    explanation of what was checked.

    I verified that the changed comment is correct according to Microsoft
    FAT spec, search for "BPB_Media" in the following references:

    1. Microsoft FAT specification 2005
    (http://read.pudn.com/downloads77/ebook/294884/FAT32%20Spec%20%28SDA%20Contribution%29.pdf).
    Search for 'volume label'.
    2. Microsoft Extensible Firmware Initiative, FAT32 File System Specification
    (https://staff.washington.edu/dittrich/misc/fatgen103.pdf).
    Search for 'volume label'.

    Link: http://lkml.kernel.org/r/1544990640-11604-2-git-send-email-carmeli.tamir@gmail.com
    Signed-off-by: Carmeli Tamir
    Acked-by: OGAWA Hirofumi
    Reviewed-by: Sergey Senozhatsky
    Cc: Bart Van Assche
    Cc: Johannes Thumshirn
    Cc: Martin K. Petersen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Carmeli Tamir
     

04 Jan, 2019

1 commit

  • Nobody has actually used the type (VERIFY_READ vs VERIFY_WRITE) argument
    of the user address range verification function since we got rid of the
    old racy i386-only code to walk page tables by hand.

    It existed because the original 80386 would not honor the write protect
    bit when in kernel mode, so you had to do COW by hand before doing any
    user access. But we haven't supported that in a long time, and these
    days the 'type' argument is a purely historical artifact.

    A discussion about extending 'user_access_begin()' to do the range
    checking resulted this patch, because there is no way we're going to
    move the old VERIFY_xyz interface to that model. And it's best done at
    the end of the merge window when I've done most of my merges, so let's
    just get this done once and for all.

    This patch was mostly done with a sed-script, with manual fix-ups for
    the cases that weren't of the trivial 'access_ok(VERIFY_xyz' form.

    There were a couple of notable cases:

    - csky still had the old "verify_area()" name as an alias.

    - the iter_iov code had magical hardcoded knowledge of the actual
    values of VERIFY_{READ,WRITE} (not that they mattered, since nothing
    really used it)

    - microblaze used the type argument for a debug printout

    but other than those oddities this should be a total no-op patch.

    I tried to fix up all architectures, did fairly extensive grepping for
    access_ok() uses, and the changes are trivial, but I may have missed
    something. Any missed conversion should be trivially fixable, though.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

31 Oct, 2018

5 commits

  • setattr_copy can't truncate timestamps correctly for
    msdos/vfat, so truncate and copy them ourselves.

    Link: http://lkml.kernel.org/r/a2b4701b1125573fafaeaae6802050ca86d6f8cc.1538363961.git.sorenson@redhat.com
    Signed-off-by: Frank Sorenson
    Acked-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frank Sorenson
     
  • Convert the inode timestamp updates to use fat_truncate_time.

    Link: http://lkml.kernel.org/r/2663d3083c4dd62f00b64612c8eaf5542bb05a4c.1538363961.git.sorenson@redhat.com
    Signed-off-by: Frank Sorenson
    Acked-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frank Sorenson
     
  • Add the fat-specific inode_operation ->update_time() and
    fat_truncate_time() function to truncate the inode timestamps from 1
    nanosecond to the appropriate granularity.

    Link: http://lkml.kernel.org/r/38af1ba3c3cf0d7381ce7b63077ef8af75901532.1538363961.git.sorenson@redhat.com
    Signed-off-by: Frank Sorenson
    Acked-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frank Sorenson
     
  • Patch series "fat: timestamp updates", v5.

    fat/msdos timestamps are stored on-disk with several different
    granularities, some of them lower resolution than timespec64_trunc() can
    provide. In addition, they are only truncated as they are written to
    disk, so the timestamps in-memory for new or modified files/directories
    may be different from the same timestamps after a remount, as the
    now-truncated times are re-read from the on-disk format.

    These patches allow finer granularity for the timestamps where possible
    and add fat-specific ->update_time inode operation and fat_truncate_time
    functions to truncate each timestamp correctly, giving consistent times
    across remounts.

    This patch (of 4):

    Move the calculation of the number of seconds in the timezone offset to a
    common function.

    Link: http://lkml.kernel.org/r/3671ff8cff5eeedbb85ebda5e4de0728920db4f6.1538363961.git.sorenson@redhat.com
    Signed-off-by: Frank Sorenson
    Acked-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frank Sorenson
     
  • The file namei.c seems to have been renamed to namei_msdos.c, so I decided
    to update the comment with the correct name, and expand it a bit to tell
    the reader what to look for.

    Link: http://lkml.kernel.org/r/20180928194947.23932-1-mihir@cs.utexas.edu
    Signed-off-by: Mihir Mehta
    Acked-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mihir Mehta