1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 * Ceph - scalable distributed file system
6 * Copyright (C) 2004-2006 Sage Weil <sage@newdream.net>
8 * This is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License version 2.1, as published by the Free Software
11 * Foundation. See file COPYING.
15 //class C_MDC_Recover;
17 #ifndef RECOVERY_QUEUE_H
18 #define RECOVERY_QUEUE_H
22 #include "include/common_fwd.h"
23 #include "osdc/Filer.h"
30 explicit RecoveryQueue(MDSRank
*mds_
);
32 void enqueue(CInode
*in
);
34 void prioritize(CInode
*in
); ///< do this inode now/soon
36 void set_logger(PerfCounters
*p
) {logger
=p
;}
39 friend class C_MDC_Recover
;
41 void _start(CInode
*in
); ///< start recovering this file
42 void _recovered(CInode
*in
, int r
, uint64_t size
, utime_t mtime
);
44 size_t file_recover_queue_size
= 0;
45 size_t file_recover_queue_front_size
= 0;
47 elist
<CInode
*> file_recover_queue
; ///< the queue
48 elist
<CInode
*> file_recover_queue_front
; ///< elevated priority items
49 std::map
<CInode
*, bool> file_recovering
; // inode -> need_restart
52 PerfCounters
*logger
= nullptr;
56 #endif // RECOVERY_QUEUE_H