- 21 4月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
At some stage, a mutex was added to gfs2_glock_put() without checking all its call sites. Two of them were called from under a spinlock causing random delays at various points and crashes. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 18 4月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
When allocating memory to sort directory entries, use vmalloc() rather than kmalloc() since for larger directories, the required size can easily be graeter than the 128k maximum of kmalloc(). Also adding the first steps towards getting the AOP_TRUNCATED_PAGE return code get in the glock code by flagging all places where we request a glock and we are holding a page lock. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 13 4月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
A typo in the directory code was causing postmark to fail somewhere in the allocation code, since it was unable to find newly allocated directory leaf blocks under certain circumstances. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 12 4月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
A small update to the journaling code to change the way that the "extra" blocks are accounted for in the journal. These are used at a rate of one per 503 metadata blocks or one per 251 journaled data blocks (or just one if the total number of journaled blocks in the transaction is smaller). Since we are using them at two different rates the old method of accounting for them no longer works and we count them up as required. Since the "per transaction" accounting can't handle this (there is no fixed number of header blocks per transaction) we have to account for it in the general journal code. We now require that each transaction reserves more blocks than it actually needs to take account of the possible extra blocks. Also a final fix to dir.c to ensure that all ref counts are handled correctly. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 08 4月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
The last patch missed some other instances of incorrect ref counting, this fixes all of those too. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 07 4月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
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: NSteven Whitehouse <swhiteho@redhat.com>
-
- 05 4月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
This puts the finishing touches to the ioctl support and also removes a couple of unused fields from GFS2's private per file structure. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 01 4月, 2006 2 次提交
-
-
由 Steven Whitehouse 提交于
Some interfaces have changed. In particular one of the posix locking functions has changed prototype, along with the address space operation invalidatepage and the block getting callback to the direct IO function. In addition add the splice file operations. These will need to be updated to support AOP_TRUNCATED_PAGE before they will be of much use to us. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
This is designed as a fs independent way to set flags on a particular inode. The values of the ioctl() and flags are designed to be identical to the ext2/3 values. Assuming that this plan is acceptable to people in general, the plan is to then move other fs across to using the same set of #defines, etc. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 31 3月, 2006 2 次提交
-
-
由 Steven Whitehouse 提交于
In some cases 16 bit functions were being used rather than 32 bit functions. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
A conditional had missing {} around the two following statements. Now added. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 30 3月, 2006 2 次提交
-
-
由 Steven Whitehouse 提交于
We didn't properly check that leaf splitting was allowed. We do now. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
Update the debugging code in trans.c and at the same time improve the debugging code for gfs2_holders. The new code should be pretty fast during the normal case and provide just as much information in case of errors (or more). One small function from glock.c has moved to glock.h as a static inline so that its return address won't get in the way of the debugging. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 29 3月, 2006 3 次提交
-
-
由 Steven Whitehouse 提交于
Replace the lock_for_trans()/lock_for_flush() functions with an rwsem. In fact the sd_log_flush_lock becomes an rwsem (the write part of it) and is extended slightly to cover everything that the lock_for_flush() used to cover. The read part of the lock is instead of lock_for_trans(). This corrects the races in the original code and reduces the code size. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 David Teigland 提交于
Look for "nodir" in the hostdata mount option which is used to set the NODIR flag in dlm_new_lockspace(). Signed-off-by: NDavid Teigland <teigland@redhat.com> Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
This reduces the size of the directory code by about 3k and gets readdir() to use the functions which were introduced in the previous directory code update. Two memory allocations are merged into one. Eliminates zeroing of some buffers which were never used before they were initialised by other data. There is still scope for further improvement in the directory code. On the logging side, a hand created mutex has been replaced by a standard Linux mutex in the log allocation code. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 22 3月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
The various flags on inodes will in future be set and queried via the extended attributes interface, so this interface is no longer required. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 21 3月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
Due to a typo, the dir leaf split operation was (for the first split in a directory) writing the new hash vaules at the wrong offset. This is now fixed. Also some other tidy ups are included: - We use GFS2's hash function for dentries (see ops_dentry.c) so that we don't have to keep recalculating the hash values. - A lot of common code is eliminated between the various directory lookup routines. - Better error checking on directory lookup (previously different routines checked for different errors) - The leaf split operation has a couple of redundant operations removed from it, so it should be faster. There is still further scope for further clean ups in the directory code, and readdir in particular could do with slimming down a bit. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 03 3月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
In order to separate out the filesystem's metadata from "normal" files and directories, a new filesystem type has been created. It is called gfs2meta and mounting it gives access to the files that were previously under .gfs2_admin (well still are until mkfs is altered, which is next on the adgenda). Its not currently possible to mount both gfs2 and gfs2meta on the same block device at the same time. A future patch will allow that to happen. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 02 3月, 2006 3 次提交
-
-
由 Steven Whitehouse 提交于
Fix a bug I introduced earlier with a kfree() and usage of a structure in the wrong order. Also try and get the counts of the journaled data buffers "more correct". Still some work to do in this area though. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
We no longer lookup ".gfs2_admin" in the root directory in order to find it, but instead use the inode number given in the superblock. Both the root directory and the admin directory are now looked up using the same routine, so the redundant code is removed. Also, there is no longer a reference to the root inode in the GFS2 super block. When required this can be retreived via sb->s_root->d_inode instead. Assuming that we introduce a metadata filesystem type for GFS, then this is a first step towards that goal. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
For every filesystem operation where we need a transaction, we now make one less memory allocation. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 28 2月, 2006 5 次提交
-
-
由 Steven Whitehouse 提交于
As suggested by Pekka Enberg <penberg@cs.helsinki.fi>. The DIV_RU macro is renamed DIV_ROUND_UP and and moved to kernel.h The other macros are gone from gfs2.h as (although not requested by Pekka Enberg) are a number of included header file which are now included individually. The inode number comparison function is now an inline function. The DT2IF and IF2DT may be addressed in a future patch. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
As requested by: Pavel Machek <pavel@suse.cz> Pavel's other comments will be dealt with in later patches. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
Requested by: Prarit Bhargava <prarit@redhat.com> Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
Requested by: Prarit Bhargava <prarit@redhat.com> Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
This issue was raised by: Eric Sesterhenn <snakebyte@gmx.de> Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 27 2月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
All printk calls now have KERN_ set where required and a couple of kmalloc(), memset(.., 0, ...) calls changed to kzalloc(). This is in response to comments from: Pekka Enberg <penberg@cs.helsinki.fi> and Eric Sesterhenn <snakebyte@gmx.de> Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 23 2月, 2006 4 次提交
-
-
由 David Teigland 提交于
Signed-off-by: NDavid Teigland <teigland@redhat.com> Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 David Teigland 提交于
Signed-off-by: NDavid Teigland <teigland@redhat.com> Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 David Teigland 提交于
This is the second of two patches removing support for range locks from the DLM Signed-off-by: NDavid Teigland <teigland@redhat.com> Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
One line which should have been deleted in the last patch was missed. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 22 2月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
Heinz had spotted that I'd forgotten to test in databuf_lo_add() that the data buffer in question hadn't already been added to the list. This was causing an infinite loop later on in the "before commit" routine. This means that GFS2 is now ready to be tested by everybody. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 21 2月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
As well as a number of minor bug fixes, this patch changes GFS to use mutices rather than semaphores. This results in better information in case there are any locking problems. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 15 2月, 2006 2 次提交
-
-
由 Steven Whitehouse 提交于
There was a bug in the unstuffing logic which caused a crash under certain circumstances. This is now fixed. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
Two internal files which are read through the gfs2_internal_read() routine were already locked when the routine was called and this do not need locking at the redapages level. This patch introduces a struct file which is used as a sentinal so that readpage will only perform locking in the case that the struct file passed to it is _not_ equal to this sentinal. Since the comments in the generic kernel code indicate that the struct file will never be used for anything other than passing straight through to readpage(), this should be ok. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 14 2月, 2006 3 次提交
-
-
由 Steven Whitehouse 提交于
Various endianess changes required in the directory code. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
This patch adds back O_DIRECT support with various caveats attached: 1. Journaled data can be read via O_DIRECT since its now the same on disk format as normal data files. 2. Journaled data writes with O_DIRECT will be failed sliently back to normal writes (should we really do this I wonder or should we return an error instead?) 3. Stuffed files will be failed back to normal buffered I/O 4. All the usual corner cases (write beyond current end of file, write to an unallocated block) will also revert to normal buffered I/O. The I/O path is slightly odd as reads arrive at the page cache layer with the lock for the file already held, but writes arrive unlocked. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
由 Steven Whitehouse 提交于
There were one or two fields in structures which didn't get changed last time back to their gfs1 sizes and alignments. One or two constants have also changed back to their original values which were missed the first time. Its possible that indirect pointer blocks might need to change. If they don't we'll have to rewrite them all on upgrade due to a change in the amount of padding that they use. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-
- 13 2月, 2006 1 次提交
-
-
由 Steven Whitehouse 提交于
Umount is now working correctly again. The bug was due to not getting an extra ref count when mounting the fs. We should have bumped it by two (once for the internal pointer to the root inode from the super block and once for the inode hanging off the dcache entry for root). Also this patch tidys up the code dealing with looking up and creating inodes. We now pass Linux inodes (with gfs2_inodes attached) rather than the other way around and this reduces code duplication in various places. Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
-