Revision tags: v2.6.22-rc4 |
|
#
ddf4b426 |
| 01-Jun-2007 |
Benjamin Marzinski <bmarzins@redhat.com> |
[GFS2] fix jdata issues
This is a patch for the first three issues of RHBZ #238162
The first issue is that when you allocate a new page for a file, it will not start off uptodate. This makes sense,
[GFS2] fix jdata issues
This is a patch for the first three issues of RHBZ #238162
The first issue is that when you allocate a new page for a file, it will not start off uptodate. This makes sense, since you haven't written anything to that part of the file yet. Unfortunately, gfs2_pin() checks to make sure that the buffers are uptodate. The solution to this is to mark the buffers uptodate in gfs2_commit_write(), after they have been zeroed out and have the data written into them. I'm pretty confident with this fix, although it's not completely obvious that there is no problem with marking the buffers uptodate here.
The second issue is simply that you can try to pin a data buffer that is already on the incore log, and thus, already pinned. This patch checks to see if this buffer is already on the log, and exits databuf_lo_add() if it is, just like buf_lo_add() does.
The third issue is that gfs2_log_flush() doesn't do it's block accounting correctly. Both metadata and journaled data are logged, but gfs2_log_flush() only compares the number of metadata blocks with the number of blocks to commit to the ondisk journal. This patch also counts the journaled data blocks.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.22-rc3, v2.6.22-rc2, v2.6.22-rc1, v2.6.21, v2.6.21-rc7, v2.6.21-rc6, v2.6.21-rc5 |
|
#
68835625 |
| 23-Mar-2007 |
Benjamin Marzinski <bmarzins@redhat.com> |
[GFS2] Fix log entry list corruption
When glock_lo_add and rg_lo_add attempt to add an element to the log, they check to see if has already been added before locking the log. If another process adds
[GFS2] Fix log entry list corruption
When glock_lo_add and rg_lo_add attempt to add an element to the log, they check to see if has already been added before locking the log. If another process adds that element to the log in this window between the check and locking the log, the element will be added to the list twice. This causes the log element list to become corrupted in such a way that the log element can never be successfully removed from the list. This patch pulls the list_empty() check inside the log lock, to remove this window.
Signed-off-by: Benjamin E. Marzinski <bmarzins@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.21-rc4, v2.6.21-rc3, v2.6.21-rc2, v2.6.21-rc1, v2.6.20, v2.6.20-rc7 |
|
#
8bd95727 |
| 25-Jan-2007 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Fix list corruption in lops.c
The patch below appears to fix the list corruption that we are seeing on occasion. Although the transaction structure is private to a single thread, when the que
[GFS2] Fix list corruption in lops.c
The patch below appears to fix the list corruption that we are seeing on occasion. Although the transaction structure is private to a single thread, when the queued structures are dismantled during an in-core commit, its possible for a different thread to be trying to add the same structure to another, new, transaction at the same time.
To avoid this, this patch takes the log spinlock during this operation.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.20-rc6, v2.6.20-rc5, v2.6.20-rc4, v2.6.20-rc3, v2.6.20-rc2, v2.6.20-rc1, v2.6.19, v2.6.19-rc6 |
|
#
70209331 |
| 09-Nov-2006 |
Russell Cattelan <cattelan@redhat.com> |
[GFS2] Fix race in logging code
The log lock is dropped prior to io submittion, but this exposes a hole in which the log data structures may be going away due to a truncate. Store the buffer head in
[GFS2] Fix race in logging code
The log lock is dropped prior to io submittion, but this exposes a hole in which the log data structures may be going away due to a truncate. Store the buffer head in a local pointer prior to dropping the lock and relay on the buffer_head lock for consitency on the buffer head.
Signed-Off-By: Russell Cattelan <cattelan@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.19-rc5, v2.6.19-rc4, v2.6.19-rc3 |
|
#
55167622 |
| 13-Oct-2006 |
Al Viro <viro@zeniv.linux.org.uk> |
[GFS2] split and annotate gfs2_log_head
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
|
Revision tags: v2.6.19-rc2 |
|
#
c312c4fd |
| 12-Oct-2006 |
Russell Cattelan <cattelan@redhat.com> |
[GFS2] Pass the correct value to kunmap_atomic
Pass kaddr rather than (incorrect) struct page to kunmap_atomic.
Signed-off-by: Russell Cattelan <cattelan@redhat.com> Signed-off-by: Steven Whitehous
[GFS2] Pass the correct value to kunmap_atomic
Pass kaddr rather than (incorrect) struct page to kunmap_atomic.
Signed-off-by: Russell Cattelan <cattelan@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.19-rc1 |
|
#
907b9bce |
| 25-Sep-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2/DLM] Fix trailing whitespace
As per Andrew Morton's request, removed trailing whitespace.
Cc: Andrew Morton <akpm@osdl.org> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
|
#
7276b3b0 |
| 21-Sep-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Tidy up meta_io code
Fix a bug in the directory reading code, where we might have dereferenced a NULL pointer in case of OOM. Updated the directory code to use the new & improved version of g
[GFS2] Tidy up meta_io code
Fix a bug in the directory reading code, where we might have dereferenced a NULL pointer in case of OOM. Updated the directory code to use the new & improved version of gfs2_meta_ra() which now returns the first block that was being read. Previously it was releasing it requiring following code to grab the block again at each point it was called.
Also turned off readahead on directory lookups since we are reading a hash table, and therefore reading the entries in order is very unlikely. Readahead is still used for all other calls to the directory reading function (e.g. when growing the hash table).
Removed the DIO_START constant. Everywhere this was used, it was used to unconditionally start i/o aside from a couple of places, so I've removed it and made the couple of exceptions to this rule into separate functions.
Also hunted through the other DIO flags and removed them as arguments from functions which were always called with the same combination of arguments.
Updated gfs2_meta_indirect_buffer to be a bit more efficient and hopefully also be a bit easier to read.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.18 |
|
#
7d308590 |
| 19-Sep-2006 |
Fabio Massimo Di Nitto <fabbione@ubuntu.com> |
[GFS2] Export lm_interface to kernel headers
lm_interface.h has a few out of the tree clients such as GFS1 and userland tools.
Right now, these clients keeps a copy of the file in their build tree
[GFS2] Export lm_interface to kernel headers
lm_interface.h has a few out of the tree clients such as GFS1 and userland tools.
Right now, these clients keeps a copy of the file in their build tree that can go out of sync.
Move lm_interface.h to include/linux, export it to userland and clean up fs/gfs2 to use the new location.
Signed-off-by: Fabio M. Di Nitto <fabbione@ubuntu.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.18-rc7 |
|
#
a67cdbd4 |
| 05-Sep-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Style changes in logging code
As per Jan Engelhardt's comments, removed some unused code and removed some brackets which were not required.
Cc: Jan Engelhardt <jengelh@linux01.gwdg.de> Signe
[GFS2] Style changes in logging code
As per Jan Engelhardt's comments, removed some unused code and removed some brackets which were not required.
Cc: Jan Engelhardt <jengelh@linux01.gwdg.de> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
#
ea67eedb |
| 05-Sep-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Fix end of multi-line structures
As per Jan Engelhardt's request, I've added a ',' to the end of each of the multi-line structures which didn't already have one (most already did).
Cc: Jan E
[GFS2] Fix end of multi-line structures
As per Jan Engelhardt's request, I've added a ',' to the end of each of the multi-line structures which didn't already have one (most already did).
Cc: Jan Engelhardt <jengelh@linux01.gwdg.de> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
#
82ffa516 |
| 04-Sep-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] More style changes
As per Jan Engelhardt's fourth email, this is the first part of the change set with a few minor style points.
Cc: Jan Engelhardt <jengelh@linux01.gwdg.de> Signed-off-by: S
[GFS2] More style changes
As per Jan Engelhardt's fourth email, this is the first part of the change set with a few minor style points.
Cc: Jan Engelhardt <jengelh@linux01.gwdg.de> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
#
cd915493 |
| 04-Sep-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Change all types to uX style
This makes all fixed size types have consistent names.
Cc: Jan Engelhardt <jengelh@linux01.gwdg.de> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
|
Revision tags: v2.6.18-rc6 |
|
#
e9fc2aa0 |
| 01-Sep-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Update copyright, tidy up incore.h
As per comments from Jan Engelhardt <jengelh@linux01.gwdg.de> this updates the copyright message to say "version" in full rather than "v.2". Also incore.h h
[GFS2] Update copyright, tidy up incore.h
As per comments from Jan Engelhardt <jengelh@linux01.gwdg.de> this updates the copyright message to say "version" in full rather than "v.2". Also incore.h has been updated to remove forward structure declarations which are not required.
The gfs2_quota_lvb structure has now had endianess annotations added to it. Also quota.c has been updated so that we now store the lvb data locally in endian independant format to avoid needing a structure in host endianess too. As a result the endianess conversions are done as required at various points and thus the conversion routines in lvb.[ch] are no longer required. I've moved the one remaining constant in lvb.h thats used into lm.h and removed the unused lvb.[ch].
I have not changed the HIF_ constants. That is left to a later patch which I hope will unify the gh_flags and gh_iflags fields of the struct gfs2_holder.
Cc: Jan Engelhardt <jengelh@linux01.gwdg.de> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
#
623d9355 |
| 31-Aug-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Fix releasepage bug (fixes direct i/o writes)
This patch fixes three main bugs. Firstly the direct i/o get_block was returning the wrong return code in certain cases. Secondly, the GFS2's rel
[GFS2] Fix releasepage bug (fixes direct i/o writes)
This patch fixes three main bugs. Firstly the direct i/o get_block was returning the wrong return code in certain cases. Secondly, the GFS2's releasepage function was not dealing with cases when clean, ordered buffers were found still queued on a transaction (which can happen depending on the ordering of journal flushes). Thirdly, the journaling code itself needed altering to take account of the after effects of removing the clean ordered buffers from the transactions before a journal flush.
The releasepage bug did also show up under "normal" buffered i/o as well, so its not just a fix for direct i/o. In fact its not normally used in the direct i/o path at all, except when flushing existing buffers after performing a direct i/o write, but that was the code path that led us to spot this.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.18-rc5 |
|
#
b8e1aabf |
| 22-Aug-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Another list_del bug
Another case where list_del should be list_del_init.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
|
#
08867605 |
| 22-Aug-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Fix to list_del in lops.c
A list_del should have been a list_del_init in lops.c which was resulting in incorrect status returns from list_empty().
Signed-off-by: Steven Whitheouse <swhiteho@
[GFS2] Fix to list_del in lops.c
A list_del should have been a list_del_init in lops.c which was resulting in incorrect status returns from list_empty().
Signed-off-by: Steven Whitheouse <swhiteho@redhat.com>
show more ...
|
#
15d00c0b |
| 18-Aug-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Fix leak of gfs2_bufdata
This fixes a memory leak of struct gfs2_bufdata and also some problems in the ordered write handling code. It needs a bit more testing, but I believe that the referen
[GFS2] Fix leak of gfs2_bufdata
This fixes a memory leak of struct gfs2_bufdata and also some problems in the ordered write handling code. It needs a bit more testing, but I believe that the reference counting of ordered write buffers should now be correct.
This is aimed at fixing Red Hat bugzilla: #201028 and #201082
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.18-rc4, v2.6.18-rc3, v2.6.18-rc2, v2.6.18-rc1 |
|
#
b61dde79 |
| 19-Jun-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Always include glock in transaction
Include the glock in the transaction, even when not journaling data in order that ordered write data will be correctly flushed when the lock is released.
[GFS2] Always include glock in transaction
Include the glock in the transaction, even when not journaling data in order that ordered write data will be correctly flushed when the lock is released.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
#
3a8476dd |
| 19-Jun-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Remove debugging printks
A few of my printks slipped through last time. Also fix a couple of minor bugs.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
|
Revision tags: v2.6.17 |
|
#
feaa7bba |
| 14-Jun-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Fix unlinked file handling
This patch fixes the way we have been dealing with unlinked, but still open files. It removes all limits (other than memory for inodes, as per every other filesyste
[GFS2] Fix unlinked file handling
This patch fixes the way we have been dealing with unlinked, but still open files. It removes all limits (other than memory for inodes, as per every other filesystem) on numbers of these which we can support on GFS2. It also means that (like other fs) its the responsibility of the last process to close the file to deallocate the storage, rather than the person who did the unlinking. Note that with GFS2, those two events might take place on different nodes.
Also there are a number of other changes:
o We use the Linux inode subsystem as it was intended to be used, wrt allocating GFS2 inodes o The Linux inode cache is now the point which we use for local enforcement of only holding one copy of the inode in core at once (previous to this we used the glock layer). o We no longer use the unlinked "special" file. We just ignore it completely. This makes unlinking more efficient. o We now use the 4th block allocation state. The previously unused state is used to track unlinked but still open inodes. o gfs2_inoded is no longer needed o Several fields are now no longer needed (and removed) from the in core struct gfs2_inode o Several fields are no longer needed (and removed) from the in core superblock
There are a number of future possible optimisations and clean ups which have been made possible by this patch.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.17-rc6, v2.6.17-rc5 |
|
#
3a8a9a10 |
| 18-May-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Update copyright date to 2006
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
|
#
bd896801 |
| 18-May-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Remove semaphore.h from C files
We no longer use semaphores, everything has been converted to mutex or rwsem, so we don't need to include this header any more.
Signed-off-by: Steven Whitehou
[GFS2] Remove semaphore.h from C files
We no longer use semaphores, everything has been converted to mutex or rwsem, so we don't need to include this header any more.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.17-rc4, v2.6.17-rc3, v2.6.17-rc2 |
|
#
b09e593d |
| 07-Apr-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS2] Fix a ref count bug and other clean ups
This fixes a ref count bug that sometimes showed up a umount time (causing it to hang) but it otherwise mostly harmless. At the same time there are som
[GFS2] Fix a ref count bug and other clean ups
This fixes a ref count bug that sometimes showed up a umount time (causing it to hang) but it otherwise mostly harmless. At the same time there are some clean ups including making the log operations structures const, moving a memory allocation so that its not done in the fast path of checking to see if there is an outstanding transaction related to a particular glock.
Removes the sd_log_wrap varaible which was updated, but never actually used anywhere. Updates the gfs2 ioctl() to run without the kernel lock (which it never needed anyway). Removes the "invalidate inodes" loop from GFS2's put_super routine. This is done in kill super anyway so we don't need to do it here. The loop was also bogus in that if there are any inodes "stuck" at this point its a bug and we need to know about it rather than hide it by hanging forever.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
show more ...
|
Revision tags: v2.6.17-rc1 |
|
#
e3167ded |
| 30-Mar-2006 |
Steven Whitehouse <swhiteho@redhat.com> |
[GFS] Fix bug in endian conversion for metadata header
In some cases 16 bit functions were being used rather than 32 bit functions.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
|