Lines Matching refs:s
128 struct bch_folio *s; in __bch2_folio_create() local
130 s = kzalloc(sizeof(*s) + in __bch2_folio_create()
133 if (!s) in __bch2_folio_create()
136 spin_lock_init(&s->lock); in __bch2_folio_create()
137 folio_attach_private(folio, s); in __bch2_folio_create()
138 return s; in __bch2_folio_create()
159 struct bch_folio *s = bch2_folio(folio); in __bch2_folio_set() local
165 spin_lock(&s->lock); in __bch2_folio_set()
168 s->s[i].nr_replicas = nr_ptrs; in __bch2_folio_set()
169 bch2_folio_sector_set(folio, s, i, state); in __bch2_folio_set()
173 s->uptodate = true; in __bch2_folio_set()
175 spin_unlock(&s->lock); in __bch2_folio_set()
189 struct bch_folio *s = bch2_folio_create(fs[folio_idx], GFP_KERNEL); in bch2_folio_set() local
190 if (!s) in bch2_folio_set()
193 need_set |= !s->uptodate; in bch2_folio_set()
271 struct bch_folio *s; in bch2_mark_pagecache_unallocated() local
276 s = bch2_folio(folio); in bch2_mark_pagecache_unallocated()
278 if (s) { in bch2_mark_pagecache_unallocated()
279 spin_lock(&s->lock); in bch2_mark_pagecache_unallocated()
281 s->s[j].nr_replicas = 0; in bch2_mark_pagecache_unallocated()
282 spin_unlock(&s->lock); in bch2_mark_pagecache_unallocated()
328 struct bch_folio *s = bch2_folio(folio); in bch2_mark_pagecache_reserved() local
329 if (s) { in bch2_mark_pagecache_reserved()
333 spin_lock(&s->lock); in bch2_mark_pagecache_reserved()
335 i_sectors_delta -= s->s[j].state == SECTOR_dirty; in bch2_mark_pagecache_reserved()
336 bch2_folio_sector_set(folio, s, j, in bch2_mark_pagecache_reserved()
337 folio_sector_reserve(s->s[j].state)); in bch2_mark_pagecache_reserved()
339 spin_unlock(&s->lock); in bch2_mark_pagecache_reserved()
352 static inline unsigned sectors_to_reserve(struct bch_folio_sector *s, in sectors_to_reserve() argument
356 s->nr_replicas - in sectors_to_reserve()
357 s->replicas_reserved); in sectors_to_reserve()
364 struct bch_folio *s = bch2_folio_create(folio, 0); in bch2_get_folio_disk_reservation() local
370 if (!s) in bch2_get_folio_disk_reservation()
374 disk_res_sectors += sectors_to_reserve(&s->s[i], nr_replicas); in bch2_get_folio_disk_reservation()
388 s->s[i].replicas_reserved += in bch2_get_folio_disk_reservation()
389 sectors_to_reserve(&s->s[i], nr_replicas); in bch2_get_folio_disk_reservation()
409 struct bch_folio *s = bch2_folio_create(folio, 0); in __bch2_folio_reservation_get() local
415 if (!s) in __bch2_folio_reservation_get()
418 BUG_ON(!s->uptodate); in __bch2_folio_reservation_get()
423 disk_sectors += sectors_to_reserve(&s->s[i], res->disk.nr_replicas); in __bch2_folio_reservation_get()
424 quota_sectors += s->s[i].state == SECTOR_unallocated; in __bch2_folio_reservation_get()
439 disk_sectors += sectors_to_reserve(&s->s[i], res->disk.nr_replicas); in __bch2_folio_reservation_get()
454 quota_sectors += s->s[i].state == SECTOR_unallocated; in __bch2_folio_reservation_get()
493 struct bch_folio *s = bch2_folio(folio); in bch2_clear_folio_bits() local
497 if (!s) in bch2_clear_folio_bits()
504 disk_res.sectors += s->s[i].replicas_reserved; in bch2_clear_folio_bits()
505 s->s[i].replicas_reserved = 0; in bch2_clear_folio_bits()
507 dirty_sectors -= s->s[i].state == SECTOR_dirty; in bch2_clear_folio_bits()
508 bch2_folio_sector_set(folio, s, i, folio_sector_undirty(s->s[i].state)); in bch2_clear_folio_bits()
524 struct bch_folio *s = bch2_folio(folio); in bch2_set_folio_dirty() local
530 BUG_ON(!s->uptodate); in bch2_set_folio_dirty()
532 spin_lock(&s->lock); in bch2_set_folio_dirty()
537 unsigned sectors = sectors_to_reserve(&s->s[i], in bch2_set_folio_dirty()
546 s->s[i].replicas_reserved += sectors; in bch2_set_folio_dirty()
549 dirty_sectors += s->s[i].state == SECTOR_unallocated; in bch2_set_folio_dirty()
551 bch2_folio_sector_set(folio, s, i, folio_sector_dirty(s->s[i].state)); in bch2_set_folio_dirty()
554 spin_unlock(&s->lock); in bch2_set_folio_dirty()
681 struct bch_folio *s = bch2_folio(folio); in folio_data_offset() local
684 if (s) in folio_data_offset()
686 if (s->s[i].state >= SECTOR_dirty && in folio_data_offset()
687 s->s[i].nr_replicas + s->s[i].replicas_reserved >= min_replicas) in folio_data_offset()
752 struct bch_folio *s; in folio_hole_offset() local
761 s = bch2_folio(folio); in folio_hole_offset()
762 if (!s) in folio_hole_offset()
767 if (s->s[i].state < SECTOR_dirty || in folio_hole_offset()
768 s->s[i].nr_replicas + s->s[i].replicas_reserved < min_replicas) { in folio_hole_offset()