Update bcachefs sources to 7227ff07f14b Merge pull request #10 from modelrockettier/real_mount_time

This commit is contained in:
Tim Schlueter 2018-11-04 21:14:26 -08:00
parent 25dac4021f
commit 770d75e7e5
6 changed files with 36 additions and 11 deletions

View File

@ -1 +1 @@
8bf4b038d41230504d3f0315a35e4d7a056e0a65
7227ff07f14b424e92b13dd5099aba9ece1ec43c

View File

@ -338,12 +338,17 @@ void bch2_fs_usage_apply(struct bch_fs *c,
{
struct fs_usage_sum sum = __fs_usage_sum(*stats);
s64 added = sum.data + sum.reserved;
s64 should_not_have_added;
/*
* Not allowed to reduce sectors_available except by getting a
* reservation:
*/
BUG_ON(added > (s64) (disk_res ? disk_res->sectors : 0));
should_not_have_added = added - (s64) (disk_res ? disk_res->sectors : 0);
if (WARN_ON(should_not_have_added > 0)) {
atomic64_sub(should_not_have_added, &c->sectors_available);
added -= should_not_have_added;
}
if (added > 0) {
disk_res->sectors -= added;
@ -661,7 +666,7 @@ static void bch2_mark_extent(struct bch_fs *c, struct bkey_s_c k,
stats->replicas
[!p.ptr.cached && replicas ? replicas - 1 : 0].data
[!p.ptr.cached ? data_type : BCH_DATA_CACHED] +=
sectors;
disk_sectors;
bch2_mark_pointer(c, e, p, disk_sectors, data_type,
stats, journal_seq, flags);

View File

@ -235,7 +235,7 @@ unsigned bch2_extent_is_compressed(struct bkey_s_c k)
if (!p.ptr.cached &&
p.crc.compression_type != BCH_COMPRESSION_NONE &&
p.crc.compressed_size < p.crc.live_size)
ret = max_t(unsigned, ret, p.crc.compressed_size);
ret += p.crc.compressed_size;
}
}
@ -1275,8 +1275,7 @@ bch2_extent_can_insert(struct btree_insert *trans,
switch (bch2_disk_reservation_add(trans->c,
trans->disk_res,
sectors * bch2_extent_nr_dirty_ptrs(k),
flags)) {
sectors, flags)) {
case 0:
break;
case -ENOSPC:

View File

@ -12,7 +12,9 @@ struct { \
#define DECLARE_FIFO(type, name) FIFO(type) name
#define fifo_buf_size(fifo) \
(roundup_pow_of_two((fifo)->size) * sizeof((fifo)->data[0]))
((fifo)->size \
? roundup_pow_of_two((fifo)->size) * sizeof((fifo)->data[0]) \
: 0)
#define init_fifo(fifo, _size, _gfp) \
({ \

View File

@ -4,6 +4,7 @@
#include "btree_gc.h"
#include "btree_update.h"
#include "buckets.h"
#include "disk_groups.h"
#include "inode.h"
#include "io.h"
#include "journal_reclaim.h"
@ -260,8 +261,26 @@ int bch2_migrate_write_init(struct bch_fs *c, struct migrate_write *m,
}
break;
}
case DATA_REWRITE:
case DATA_REWRITE: {
const union bch_extent_entry *entry;
struct extent_ptr_decoded p;
unsigned compressed_sectors = 0;
extent_for_each_ptr_decode(bkey_s_c_to_extent(k), p, entry)
if (!p.ptr.cached &&
p.crc.compression_type != BCH_COMPRESSION_NONE &&
bch2_dev_in_target(c, p.ptr.dev, data_opts.target))
compressed_sectors += p.crc.compressed_size;
if (compressed_sectors) {
ret = bch2_disk_reservation_add(c, &m->op.res,
compressed_sectors,
BCH_DISK_RESERVATION_NOFAIL);
if (ret)
return ret;
}
break;
}
case DATA_PROMOTE:
m->op.flags |= BCH_WRITE_ALLOC_NOWAIT;
m->op.flags |= BCH_WRITE_CACHED;

View File

@ -686,7 +686,7 @@ const char *bch2_fs_start(struct bch_fs *c)
const char *err = "cannot allocate memory";
struct bch_sb_field_members *mi;
struct bch_dev *ca;
time64_t now = ktime_get_seconds();
time64_t now = ktime_get_real_seconds();
unsigned i;
int ret = -EINVAL;
@ -1456,7 +1456,7 @@ have_slot:
/* success: */
mi->members[dev_idx] = dev_mi;
mi->members[dev_idx].last_mount = cpu_to_le64(ktime_get_seconds());
mi->members[dev_idx].last_mount = cpu_to_le64(ktime_get_real_seconds());
c->disk_sb.sb->nr_devices = nr_devices;
ca->disk_sb.sb->dev_idx = dev_idx;
@ -1532,7 +1532,7 @@ int bch2_dev_online(struct bch_fs *c, const char *path)
mi = bch2_sb_get_members(c->disk_sb.sb);
mi->members[ca->dev_idx].last_mount =
cpu_to_le64(ktime_get_seconds());
cpu_to_le64(ktime_get_real_seconds());
bch2_write_super(c);
mutex_unlock(&c->sb_lock);