<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/linux/journal-head.h, branch v3.10.44</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.10.44</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.10.44'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2013-05-13T13:45:01Z</updated>
<entry>
<title>jbd,jbd2: fix oops in jbd2_journal_put_journal_head()</title>
<updated>2013-05-13T13:45:01Z</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2013-05-13T13:45:01Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e2555fde4159467fb579e6ae3c0a8fc33015d0f5'/>
<id>urn:sha1:e2555fde4159467fb579e6ae3c0a8fc33015d0f5</id>
<content type='text'>
Commit ae4647fb (jbd2: reduce journal_head size) introduced a
regression where we occasionally hit panic in
jbd2_journal_put_journal_head() because of wrong b_jcount. The bug is
caused by gcc making 64-bit access to 32-bit bitfield and thus
clobbering b_jcount.

At least for now, those 8 bytes saved in struct journal_head are not
worth the trouble with gcc bitfield handling so revert that part of
the patch.

Reported-by: EUNBONG SONG &lt;eunb.song@samsung.com&gt;
Reported-by: Tony Luck &lt;tony.luck@gmail.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: reduce journal_head size</title>
<updated>2013-04-12T04:03:42Z</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2013-04-12T04:03:42Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=ae4647fb7654676fc44a97e86eb35f9f06b99f66'/>
<id>urn:sha1:ae4647fb7654676fc44a97e86eb35f9f06b99f66</id>
<content type='text'>
Remove unused t_cow_tid field (ext4 copy-on-write support doesn't seem
to be happening) and change b_modified and b_jlist to bitfields thus
saving 8 bytes in the structure.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Reviewed-by: Zheng Liu &lt;wenqing.lz@taobao.com&gt;
</content>
</entry>
<entry>
<title>jbd2: remove bh_state lock from checkpointing code</title>
<updated>2012-03-14T02:45:25Z</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2012-03-14T02:45:25Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=932bb305ba2a01cd62809644d569f004e77a4355'/>
<id>urn:sha1:932bb305ba2a01cd62809644d569f004e77a4355</id>
<content type='text'>
All accesses to checkpointing entries in journal_head are protected
by j_list_lock. Thus __jbd2_journal_remove_checkpoint() doesn't really
need bh_state lock.

Also the only part of journal head that the rest of checkpointing code
needs to check is jh-&gt;b_transaction which is safe to read under
j_list_lock.

So we can safely remove bh_state lock from all of checkpointing code which
makes it considerably prettier.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd: change the field "b_cow_tid" of struct journal_head from type unsigned to tid_t</title>
<updated>2011-07-25T15:24:47Z</updated>
<author>
<name>Wang Sheng-Hui</name>
<email>shhuiw@gmail.com</email>
</author>
<published>2011-07-25T13:02:25Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5cf49d763eb141d236e92be6d4a0dc94e31fa886'/>
<id>urn:sha1:5cf49d763eb141d236e92be6d4a0dc94e31fa886</id>
<content type='text'>
In the definition of struct journal_head, the comment for
the field "unsigned b_cow_tid" says the field tracks the
last transaction id in which this buffer has been cowed.

In the header part of file journal-head.h, it defines
   typedef unsigned int  tid_t;
We should use type tid_t to define transaction id fields.

Change the field "b_cow_tid" of struct journal_head from
type unsigned to tid_t.

Signed-off-by: Wang Sheng-Hui &lt;shhuiw@gmail.com&gt;
Acked-by: Amir Goldstein &lt;amir73il@users.sf.net&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>jbd2: add the b_cow_tid field to journal_head struct</title>
<updated>2011-03-21T00:08:48Z</updated>
<author>
<name>Amir Goldstein</name>
<email>amir73il@gmail.com</email>
</author>
<published>2011-03-21T00:08:48Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=c2cc7028e41c76e44b6e247c4b495c7523b23c87'/>
<id>urn:sha1:c2cc7028e41c76e44b6e247c4b495c7523b23c87</id>
<content type='text'>
The b_cow_tid field will be used by the ext4 snapshots code to store
the transaction id when the buffer was last cowed.

Merging this patch to mainline will allow users to test ext4 snapshots
as a standalone module, without the need to patch and install a
development kernel.

On 64bit machines this field uses fills in a padding "hole" and does
not increase the size of the struct.  On a 32bit machine this patch
increases the size of the struct from 60 to 64 bytes.

Signed-off-by: Amir Goldstein &lt;amir73il@users.sf.net&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: Add buffer triggers</title>
<updated>2009-01-05T16:40:30Z</updated>
<author>
<name>Joel Becker</name>
<email>joel.becker@oracle.com</email>
</author>
<published>2008-09-11T22:35:47Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e06c8227fd94ec181849ba206bf032be31c4295c'/>
<id>urn:sha1:e06c8227fd94ec181849ba206bf032be31c4295c</id>
<content type='text'>
Filesystems often to do compute intensive operation on some
metadata.  If this operation is repeated many times, it can be very
expensive.  It would be much nicer if the operation could be performed
once before a buffer goes to disk.

This adds triggers to jbd2 buffer heads.  Just before writing a metadata
buffer to the journal, jbd2 will optionally call a commit trigger associated
with the buffer.  If the journal is aborted, an abort trigger will be
called on any dirty buffers as they are dropped from pending
transactions.

ocfs2 will use this feature.

Initially I tried to come up with a more generic trigger that could be
used for non-buffer-related events like transaction completion.  It
doesn't tie nicely, because the information a buffer trigger needs
(specific to a journal_head) isn't the same as what a transaction
trigger needs (specific to a tranaction_t or perhaps journal_t).  So I
implemented a buffer set, with the understanding that
journal/transaction wide triggers should be implemented separately.

There is only one trigger set allowed per buffer.  I can't think of any
reason to attach more than one set.  Contrast this with a journal or
transaction in which multiple places may want to watch the entire
transaction separately.

The trigger sets are considered static allocation from the jbd2
perspective.  ocfs2 will just have one trigger set per block type,
setting the same set on every bh of the same type.

Signed-off-by: Joel Becker &lt;joel.becker@oracle.com&gt;
Cc: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Cc: &lt;linux-ext4@vger.kernel.org&gt;
Signed-off-by: Mark Fasheh &lt;mfasheh@suse.com&gt;
</content>
</entry>
<entry>
<title>Remove Andrew Morton's old email accounts</title>
<updated>2008-10-16T18:21:32Z</updated>
<author>
<name>Francois Cami</name>
<email>francois.cami@free.fr</email>
</author>
<published>2008-10-16T05:01:59Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e1f8e87449147ffe5ea3de64a46af7de450ce279'/>
<id>urn:sha1:e1f8e87449147ffe5ea3de64a46af7de450ce279</id>
<content type='text'>
People can use the real name an an index into MAINTAINERS to find the
current email address.

Signed-off-by: Francois Cami &lt;francois.cami@free.fr&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] jbd: journal overflow fix #2</title>
<updated>2005-03-08T01:46:14Z</updated>
<author>
<name>Alex Tomas</name>
<email>alex@clusterfs.com</email>
</author>
<published>2005-03-08T01:46:14Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5025daf1ae75ab4d91f48cebb9af3d4a519e611b'/>
<id>urn:sha1:5025daf1ae75ab4d91f48cebb9af3d4a519e611b</id>
<content type='text'>
fix against credits leak in journal_release_buffer()

The idea is to charge a buffer in journal_dirty_metadata(), not in
journal_get_*_access()).  Each buffer has flag call
journal_dirty_metadata() sets on the buffer.

Signed-off-by: Alex Tomas &lt;alex@clusterfs.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] JBD: b_tnext locking</title>
<updated>2003-06-18T01:28:06Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@digeo.com</email>
</author>
<published>2003-06-18T01:28:06Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=1fe87216564d92acd45a99009c5bd7f17f4de329'/>
<id>urn:sha1:1fe87216564d92acd45a99009c5bd7f17f4de329</id>
<content type='text'>
Implement the designated b_tnext locking.

This also covers b_tprev locking.
</content>
</entry>
<entry>
<title>[PATCH] JBD: plan JBD locking schema</title>
<updated>2003-06-18T01:27:06Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@digeo.com</email>
</author>
<published>2003-06-18T01:27:06Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=13d8498a97a9e6a120b433cfce1d7b0622a23863'/>
<id>urn:sha1:13d8498a97a9e6a120b433cfce1d7b0622a23863</id>
<content type='text'>
This is the start of the JBD locking rework.

The aims of all this are to remove all lock_kernel() calls from JBD, to
remove all lock_journal() calls (the context switch rate is astonishing when
the lock_kernel()s are removed) and to remove all sleep_on() instances.




The strategy which is taken is:

a) Define the lcoking schema (this patch)

b) Work through every JBD data structure and implement its locking fully,
   according to the above schema.  We work from "innermost" data structures
   and outwards.

It isn't guaranteed that the filesystem will work very well at all stages of
this patch series.



In this patch:


Add commentary and various locks to jbd.h describing the locking scheme which
is about to be implemented.

Initialise the new locks.

Coding-style goodness in jbd.h
</content>
</entry>
</feed>
