162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * fs/hmdfs/server_writeback.h 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (c) 2020-2021 Huawei Device Co., Ltd. 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef SERVER_WRITEBACK_H 962306a36Sopenharmony_ci#define SERVER_WRITEBACK_H 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include "hmdfs.h" 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#define HMDFS_MB_TO_PAGE_SHIFT (20 - HMDFS_PAGE_OFFSET) 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cistruct hmdfs_server_writeback { 1662306a36Sopenharmony_ci struct hmdfs_sb_info *sbi; 1762306a36Sopenharmony_ci /* Enable hmdfs server dirty writeback control */ 1862306a36Sopenharmony_ci bool dirty_writeback_control; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci /* Current # of dirty pages from remote client in recent 1s */ 2162306a36Sopenharmony_ci atomic_t dirty_nr_pages; 2262306a36Sopenharmony_ci /* Current # of dirty pages to writeback */ 2362306a36Sopenharmony_ci int dirty_nr_pages_to_wb; 2462306a36Sopenharmony_ci /* Dirty thresh(Dirty data pages in 1s) to trigger wb */ 2562306a36Sopenharmony_ci unsigned int dirty_thresh_pg; 2662306a36Sopenharmony_ci /* Last reset timestamp(in jiffies) for @dirty_nr_pages */ 2762306a36Sopenharmony_ci unsigned long last_reset_time; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci struct workqueue_struct *dirty_writeback_wq; 3062306a36Sopenharmony_ci /* Per-fs pages from client writeback work */ 3162306a36Sopenharmony_ci struct work_struct dirty_sb_writeback_work; 3262306a36Sopenharmony_ci}; 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_civoid hmdfs_server_check_writeback(struct hmdfs_server_writeback *hswb); 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_civoid hmdfs_destroy_server_writeback(struct hmdfs_sb_info *sbi); 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciint hmdfs_init_server_writeback(struct hmdfs_sb_info *sbi); 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci#endif 41