lkml.org 
[lkml]   [2017]   [Dec]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 55/73] f2fs: Convert to XArray
    Date
    From: Matthew Wilcox <mawilcox@microsoft.com>

    This is a straightforward conversion.

    Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
    ---
    fs/f2fs/data.c | 3 +--
    fs/f2fs/dir.c | 5 +----
    fs/f2fs/inline.c | 6 +-----
    fs/f2fs/node.c | 10 ++--------
    4 files changed, 5 insertions(+), 19 deletions(-)

    diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
    index c8f6d9806896..1f3f192f152f 100644
    --- a/fs/f2fs/data.c
    +++ b/fs/f2fs/data.c
    @@ -2175,8 +2175,7 @@ void f2fs_set_page_dirty_nobuffers(struct page *page)
    xa_lock_irqsave(&mapping->pages, flags);
    WARN_ON_ONCE(!PageUptodate(page));
    account_page_dirtied(page, mapping);
    - radix_tree_tag_set(&mapping->pages,
    - page_index(page), PAGECACHE_TAG_DIRTY);
    + __xa_set_tag(&mapping->pages, page_index(page), PAGECACHE_TAG_DIRTY);
    xa_unlock_irqrestore(&mapping->pages, flags);
    unlock_page_memcg(page);

    diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
    index b5515ea6bb2f..296070016ec9 100644
    --- a/fs/f2fs/dir.c
    +++ b/fs/f2fs/dir.c
    @@ -708,7 +708,6 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
    unsigned int bit_pos;
    int slots = GET_DENTRY_SLOTS(le16_to_cpu(dentry->name_len));
    struct address_space *mapping = page_mapping(page);
    - unsigned long flags;
    int i;

    f2fs_update_time(F2FS_I_SB(dir), REQ_TIME);
    @@ -739,10 +738,8 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,

    if (bit_pos == NR_DENTRY_IN_BLOCK &&
    !truncate_hole(dir, page->index, page->index + 1)) {
    - xa_lock_irqsave(&mapping->pages, flags);
    - radix_tree_tag_clear(&mapping->pages, page_index(page),
    + xa_clear_tag(&mapping->pages, page_index(page),
    PAGECACHE_TAG_DIRTY);
    - xa_unlock_irqrestore(&mapping->pages, flags);

    clear_page_dirty_for_io(page);
    ClearPagePrivate(page);
    diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c
    index 7858b8e15f33..d3c3f84beca9 100644
    --- a/fs/f2fs/inline.c
    +++ b/fs/f2fs/inline.c
    @@ -204,7 +204,6 @@ int f2fs_write_inline_data(struct inode *inode, struct page *page)
    void *src_addr, *dst_addr;
    struct dnode_of_data dn;
    struct address_space *mapping = page_mapping(page);
    - unsigned long flags;
    int err;

    set_new_dnode(&dn, inode, NULL, NULL, 0);
    @@ -226,10 +225,7 @@ int f2fs_write_inline_data(struct inode *inode, struct page *page)
    kunmap_atomic(src_addr);
    set_page_dirty(dn.inode_page);

    - xa_lock_irqsave(&mapping->pages, flags);
    - radix_tree_tag_clear(&mapping->pages, page_index(page),
    - PAGECACHE_TAG_DIRTY);
    - xa_unlock_irqrestore(&mapping->pages, flags);
    + xa_clear_tag(&mapping->pages, page_index(page), PAGECACHE_TAG_DIRTY);

    set_inode_flag(inode, FI_APPEND_WRITE);
    set_inode_flag(inode, FI_DATA_EXIST);
    diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
    index 6b64a3009d55..0a6d5c2f996e 100644
    --- a/fs/f2fs/node.c
    +++ b/fs/f2fs/node.c
    @@ -88,14 +88,10 @@ bool available_free_memory(struct f2fs_sb_info *sbi, int type)
    static void clear_node_page_dirty(struct page *page)
    {
    struct address_space *mapping = page->mapping;
    - unsigned int long flags;

    if (PageDirty(page)) {
    - xa_lock_irqsave(&mapping->pages, flags);
    - radix_tree_tag_clear(&mapping->pages,
    - page_index(page),
    + xa_clear_tag(&mapping->pages, page_index(page),
    PAGECACHE_TAG_DIRTY);
    - xa_unlock_irqrestore(&mapping->pages, flags);

    clear_page_dirty_for_io(page);
    dec_page_count(F2FS_M_SB(mapping), F2FS_DIRTY_NODES);
    @@ -1142,9 +1138,7 @@ void ra_node_page(struct f2fs_sb_info *sbi, nid_t nid)
    return;
    f2fs_bug_on(sbi, check_nid_range(sbi, nid));

    - rcu_read_lock();
    - apage = radix_tree_lookup(&NODE_MAPPING(sbi)->pages, nid);
    - rcu_read_unlock();
    + apage = xa_load(&NODE_MAPPING(sbi)->pages, nid);
    if (apage)
    return;

    --
    2.15.0
    \
     
     \ /
      Last update: 2017-12-06 01:49    [W:2.763 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site