aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-11-14 02:30:30 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-11-14 02:30:30 -0500
commit5e30025a319910695f5010dc0fb53a23299da14d (patch)
tree4292bcf78de221c7de1774ccf5ad0ac5a9315c26 /fs
parent7971e23a66c94f1b9bd2d64a3e86dfbfa8c60121 (diff)
parent90d3839b90fe379557dae4a44735a6af78f42885 (diff)
Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull core locking changes from Ingo Molnar: "The biggest changes: - add lockdep support for seqcount/seqlocks structures, this unearthed both bugs and required extra annotation. - move the various kernel locking primitives to the new kernel/locking/ directory" * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits) block: Use u64_stats_init() to initialize seqcounts locking/lockdep: Mark __lockdep_count_forward_deps() as static lockdep/proc: Fix lock-time avg computation locking/doc: Update references to kernel/mutex.c ipv6: Fix possible ipv6 seqlock deadlock cpuset: Fix potential deadlock w/ set_mems_allowed seqcount: Add lockdep functionality to seqcount/seqlock structures net: Explicitly initialize u64_stats_sync structures for lockdep locking: Move the percpu-rwsem code to kernel/locking/ locking: Move the lglocks code to kernel/locking/ locking: Move the rwsem code to kernel/locking/ locking: Move the rtmutex code to kernel/locking/ locking: Move the semaphore core to kernel/locking/ locking: Move the spinlock code to kernel/locking/ locking: Move the lockdep code to kernel/locking/ locking: Move the mutex code to kernel/locking/ hung_task debugging: Add tracepoint to report the hang x86/locking/kconfig: Update paravirt spinlock Kconfig description lockstat: Report avg wait and hold times lockdep, x86/alternatives: Drop ancient lockdep fixup message ...
Diffstat (limited to 'fs')
-rw-r--r--fs/dcache.c4
-rw-r--r--fs/fs_struct.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/fs/dcache.c b/fs/dcache.c
index a9dd384c5e80..0a38ef8d7f00 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -2606,7 +2606,7 @@ static void __d_move(struct dentry * dentry, struct dentry * target)
2606 dentry_lock_for_move(dentry, target); 2606 dentry_lock_for_move(dentry, target);
2607 2607
2608 write_seqcount_begin(&dentry->d_seq); 2608 write_seqcount_begin(&dentry->d_seq);
2609 write_seqcount_begin(&target->d_seq); 2609 write_seqcount_begin_nested(&target->d_seq, DENTRY_D_LOCK_NESTED);
2610 2610
2611 /* __d_drop does write_seqcount_barrier, but they're OK to nest. */ 2611 /* __d_drop does write_seqcount_barrier, but they're OK to nest. */
2612 2612
@@ -2738,7 +2738,7 @@ static void __d_materialise_dentry(struct dentry *dentry, struct dentry *anon)
2738 dentry_lock_for_move(anon, dentry); 2738 dentry_lock_for_move(anon, dentry);
2739 2739
2740 write_seqcount_begin(&dentry->d_seq); 2740 write_seqcount_begin(&dentry->d_seq);
2741 write_seqcount_begin(&anon->d_seq); 2741 write_seqcount_begin_nested(&anon->d_seq, DENTRY_D_LOCK_NESTED);
2742 2742
2743 dparent = dentry->d_parent; 2743 dparent = dentry->d_parent;
2744 2744
diff --git a/fs/fs_struct.c b/fs/fs_struct.c
index d8ac61d0c932..7dca743b2ce1 100644
--- a/fs/fs_struct.c
+++ b/fs/fs_struct.c
@@ -161,6 +161,6 @@ EXPORT_SYMBOL(current_umask);
161struct fs_struct init_fs = { 161struct fs_struct init_fs = {
162 .users = 1, 162 .users = 1,
163 .lock = __SPIN_LOCK_UNLOCKED(init_fs.lock), 163 .lock = __SPIN_LOCK_UNLOCKED(init_fs.lock),
164 .seq = SEQCNT_ZERO, 164 .seq = SEQCNT_ZERO(init_fs.seq),
165 .umask = 0022, 165 .umask = 0022,
166}; 166};