• Linus Torvalds's avatar
    Merge tag 'for-linus' of git://github.com/prasad-joshi/logfs_upstream · d3712b9d
    Linus Torvalds authored
    There are few important bug fixes for LogFS
    
    * tag 'for-linus' of git://github.com/prasad-joshi/logfs_upstream:
      Logfs: Allow NULL block_isbad() methods
      logfs: Grow inode in delete path
      logfs: Free areas before calling generic_shutdown_super()
      logfs: remove useless BUG_ON
      MAINTAINERS: Add Prasad Joshi in LogFS maintiners
      logfs: Propagate page parameter to __logfs_write_inode
      logfs: set superblock shutdown flag after generic sb shutdown
      logfs: take write mutex lock during fsync and sync
      logfs: Prevent memory corruption
      logfs: update page reference count for pined pages
    
    Fix up conflict in fs/logfs/dev_mtd.c due to semantic change in what
    "mtd->block_isbad" means in commit f2933e86: "Logfs: Allow NULL
    block_isbad() methods" clashing with the abstraction changes in the
    commits 7086c19d: "mtd: introduce mtd_block_isbad interface" and
    d58b27ed: "logfs: do not use 'mtd->block_isbad' directly".
    
    This resolution takes the semantics from commit f2933e86, and just
    makes mtd_block_isbad() return zero (false) if the 'block_isbad'
    function is NULL.  But that also means that now "mtd_can_have_bb()"
    always returns 0.
    
    Now, "mtd_block_markbad()" will obviously return an error if the
    low-level driver doesn't support bad blocks, so this is somewhat
    non-symmetric, but it actually makes sense if a NULL "block_isbad"
    function is considered to mean "I assume that all my blocks are always
    good".
    d3712b9d
logfs.h 23.8 KB