cregit-Linux how code gets into the kernel

Release 4.12 include/linux/blockgroup_lock.h

Directory: include/linux
#ifndef _LINUX_BLOCKGROUP_LOCK_H

#define _LINUX_BLOCKGROUP_LOCK_H
/*
 * Per-blockgroup locking for ext2 and ext3.
 *
 * Simple hashed spinlocking.
 */

#include <linux/spinlock.h>
#include <linux/cache.h>

#ifdef CONFIG_SMP

#define NR_BG_LOCKS	(4 << ilog2(NR_CPUS < 32 ? NR_CPUS : 32))
#else

#define NR_BG_LOCKS	1
#endif


struct bgl_lock {
	
spinlock_t lock;

} ____cacheline_aligned_in_smp;


struct blockgroup_lock {
	
struct bgl_lock locks[NR_BG_LOCKS];
};


static inline void bgl_lock_init(struct blockgroup_lock *bgl) { int i; for (i = 0; i < NR_BG_LOCKS; i++) spin_lock_init(&bgl->locks[i].lock); }

Contributors

PersonTokensPropCommitsCommitProp
Andrew Morton41100.00%1100.00%
Total41100.00%1100.00%


static inline spinlock_t * bgl_lock_ptr(struct blockgroup_lock *bgl, unsigned int block_group) { return &bgl->locks[block_group & (NR_BG_LOCKS-1)].lock; }

Contributors

PersonTokensPropCommitsCommitProp
Pekka J Enberg3088.24%150.00%
Andrew Morton411.76%150.00%
Total34100.00%2100.00%

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Andrew Morton8769.05%125.00%
Pekka J Enberg3023.81%125.00%
Adrian Bunk86.35%125.00%
Eric Biggers10.79%125.00%
Total126100.00%4100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.