• Shiyang Ruan's avatar
    fsdax: set a CoW flag when associate reflink mappings · 6061b69b
    Shiyang Ruan authored
    Introduce a PAGE_MAPPING_DAX_COW flag to support association with CoW file
    mappings.  In this case, since the dax-rmap has already took the
    responsibility to look up for shared files by given dax page, the
    page->mapping is no longer to used for rmap but for marking that this dax
    page is shared.  And to make sure disassociation works fine, we use
    page->index as refcount, and clear page->mapping to the initial state when
    page->index is decreased to 0.
    
    With the help of this new flag, it is able to distinguish normal case and
    CoW case, and keep the warning in normal case.
    
    Link: https://lkml.kernel.org/r/20220603053738.1218681-8-ruansy.fnst@fujitsu.comSigned-off-by: default avatarShiyang Ruan <ruansy.fnst@fujitsu.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Dan Williams <dan.j.wiliams@intel.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Chinner <david@fromorbit.com>
    Cc: Goldwyn Rodrigues <rgoldwyn@suse.com>
    Cc: Goldwyn Rodrigues <rgoldwyn@suse.de>
    Cc: Jane Chu <jane.chu@oracle.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Miaohe Lin <linmiaohe@huawei.com>
    Cc: Naoya Horiguchi <naoya.horiguchi@nec.com>
    Cc: Ritesh Harjani <riteshh@linux.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    6061b69b
dax.c 47.5 KB