Christoph Hellwig | 1 Aug 2009 20:49
Favicon

Re: [PATCH] use XFS_CORRUPTION_ERROR in xfs_btree_check_sblock

On Mon, Jul 20, 2009 at 05:21:53PM -0400, Christoph Hellwig wrote:
> On Mon, Jul 20, 2009 at 10:52:15AM -0500, Eric Sandeen wrote:
> > In Red Hat Bug 512552
> >  - Can't write to XFS mount during raid5 resync
> > 
> > a user ran into corruption while resyncing a raid, and we failed
> > a consistency test, but didn't get much more info; it'd be nice
> > to call XFS_CORRUPTION_ERROR here so we can see the buffer
> > contents.
> > 
> > Compile-tested only...
> 
> Looks good to me, I'll throw it into my XFSQA queue..

I has survied quite a few xfsqa runs for me, so

Reviewed-by: Christoph Hellwig <hch <at> lst.de>

sounds like another 2.6.31 candidate to me..

_______________________________________________
xfs mailing list
xfs <at> oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

Christoph Hellwig | 1 Aug 2009 21:01
Favicon

[PATCH] xfs: fix locking in xfs_iget_cache_hit

The locking in xfs_iget_cache_hit currently has numerous problems:

 - we clear the reclaim tag without i_flags_lock which protects modifications
   to it
 - we call inode_init_always which can sleep with pag_ici_lock held
 - we acquire and drop i_flags_lock a lot and thus provide no consistency
   between the various flags we set/clear under it

This patch fixes all that with a major revamp of the locking in the function.
The new version acquires i_flags_lock early and only drops it once we need to
call into inode_init_always or before calling xfs_ilock.

This patch fixes a bug seen in the wild where we race modifying the reclaim tag.

Signed-off-by: Christoph Hellwig <hch <at> lst.de>

Index: linux-2.6/fs/xfs/xfs_iget.c
===================================================================
--- linux-2.6.orig/fs/xfs/xfs_iget.c	2009-08-01 20:54:41.081080833 +0200
+++ linux-2.6/fs/xfs/xfs_iget.c	2009-08-01 20:58:29.913332494 +0200
 <at>  <at>  -133,80 +133,88  <at>  <at>  xfs_iget_cache_hit(
 	int			flags,
 	int			lock_flags) __releases(pag->pag_ici_lock)
 {
+	struct inode		*inode = VFS_I(ip);
 	struct xfs_mount	*mp = ip->i_mount;
-	int			error = EAGAIN;
+	int			error;
+
+	spin_lock(&ip->i_flags_lock);
(Continue reading)

Christoph Hellwig | 1 Aug 2009 21:02
Favicon

Re: Circular locking on rawhide 2.6.31-0.81.rc3.git4

On Mon, Jul 27, 2009 at 01:51:53PM -0400, Prarit Bhargava wrote:
> Hello everyone,
>
> This was seen while doing a "rpmbuild -bp kernel.spec" on a recent  
> rawhide build.

This should be fixed by the patch

	[PATCH 3/3] xfs: do not wait for the iolock in xfs_free_eofblocks      

I sent to the list.

_______________________________________________
xfs mailing list
xfs <at> oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

=Przedstawicielstwo= | 1 Aug 2009 21:55
Picon
Favicon

=Marketing eksportowy=2009

Szanowni, Państwo!     xfs <at> oss.sgi.com

Kryzys œwiatowy spowodował spadek sprzedaży i produkcji na całym œwiecie.
Ale kryzys  finansowy nie jest taki groŸny jak o nim mówią – ponieważ węwnętrzne kursy walut
zostały prawie bez zmian: 
polska złotówka jak i ukraińska hrywna mają taki sam wskaŸnik jak i przed kryzysem:  2,2-2,30
Ta sytuacja pozwala naszym przedsiębiorstwom prowadzić handel na tym samym poziomie cen jak i do chwili powstania
kryzysu œwiatowego.

Proponujeny Państwu założenie przedstawicielstwa w stolice Ukrainy – w Kijowie.

Zalożenie własnej firmy:
1) Założenie przedstawicielstwa, przedsiębiorstwa, spółki, filii
•  otwarcie przedstawicielstwa na Ukrainie: 
•  wynajem - biura, lokale handlowe, magazyny, domy, mieszkania
2) dobór personelu, szkolenie personelu
3) Porady prawne - doradztwo prawne, prawo cywilne, pracy, prawo gospodarcze i handlowe
4) Doradztwo inwestycyjne, biznesowe, finansowe, podatkowe
5) Uslugi rachunkowe i podatkowe, windykacja na Ukrainie, windykacja międzynarodowa 
6) certyfikacja w systemie UkrSepro na Ukrainie
7) Szkolenia

Proponujemy usługi:

1) personel ze znajomoœcią jezyka polskiego
2) organizacja spotkań biznesowych
3) usługi poligraficzne, drukarskie
4) reklama polskich towarów i usług na Ukrainie
5) marketing eksportowy
6) aktywne poszukiwanie odbiorców towarów na Ukrainie, prowadzenie rozmów, tłumaczenia,
(Continue reading)

Roel Kluin | 2 Aug 2009 13:18
Picon
Gravatar

[PATCH] SGI-PV: Read buffer overflow

Check whether index is within bounds before grabbing the element.

Signed-off-by: Roel Kluin <roel.kluin <at> gmail.com>
---
diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c
index 9ff6e57..ef1d275 100644
--- a/fs/xfs/xfs_da_btree.c
+++ b/fs/xfs/xfs_da_btree.c
 <at>  <at>  -1414,8 +1414,9  <at>  <at>  xfs_da_path_shift(xfs_da_state_t *state, xfs_da_state_path_t *path,
 	ASSERT(args != NULL);
 	ASSERT(path != NULL);
 	ASSERT((path->active > 0) && (path->active < XFS_DA_NODE_MAXDEPTH));
-	level = (path->active-1) - 1;	/* skip bottom layer in path */
-	for (blk = &path->blk[level]; level >= 0; blk--, level--) {
+	/* skip bottom layer in path */
+	for (level = (path->active-1) - 1; level >= 0; blk--, level--) {
+		blk = &path->blk[level];
 		ASSERT(blk->bp != NULL);
 		node = blk->bp->data;
 		ASSERT(be16_to_cpu(node->hdr.info.magic) == XFS_DA_NODE_MAGIC);

_______________________________________________
xfs mailing list
xfs <at> oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

Christian Kujau | 3 Aug 2009 08:28
Picon

kernel BUG at lib/radix-tree.c:464

Hi,

while lots of I/O (read, write) was in progress, this was captured via 
remote syslog:

[33019.357211] ------------[ cut here ]------------
[33019.357269] kernel BUG at lib/radix-tree.c:464!
[33019.357311] invalid opcode: 0000 [#1] SMP 
[33019.357354] last sysfs file: /sys/devices/pci0000:00/0000:00:1f.2/host2/target2:0:0/2:0:0:0/type
[33019.357618] 
[33019.357423] Modules linked in: fuse acpi_cpufreq nfsd lockd nfs_acl auth_rpcgss sunrpc lm75 hwmon
usb_storage usb_libusual b43 mac80211 uhci_hcd cfg80211 ehci_hcd tg3 usbcore libphy ssb nls_base
[33019.357722] EIP: 0060:[<c11eaa55>] EFLAGS: 00010246 CPU: 0
[33019.357654] Pid: 225, comm: kswapd0 Tainted: G        W  (2.6.31-rc5 #1) Lenovo          
[33019.357771] EIP is at radix_tree_tag_set+0xc5/0xe0
[33019.357811] EAX: 00000000 EBX: 00000000 ECX: 00000000 EDX: 00000001
[33019.357856] ESI: 00000020 EDI: 00000000 EBP: d7ea0dc8 ESP: f70b6e24
[33019.357901]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[33019.357946] Process kswapd0 (pid: 225, ti=f70b6000 task=f710c3d0 task.ti=f70b6000)
[33019.358013] Stack:
[33019.358044]  0beea120 f5d1acc0 00000000 f0baf97c d6624c80 f5d1ac88 0000001e f70b6eac
[33019.358110] <0> c11b946e f0baf97c d6624c80 f70b6eac 00000034 f70b6eac c11a73c5 f0baf97c
[33019.358196] <0> d6624da4 c11b7766 f70b6e68 f0baf97c d6624da4 f0baf97c d6624da4 c10b58e3
[33019.358303] Call Trace:
[33019.358344]  [<c11b946e>] ? xfs_inode_set_reclaim_tag+0x7e/0xc0
[33019.358390]  [<c11a73c5>] ? xfs_reclaim+0x45/0xc0
[33019.358431]  [<c11b7766>] ? xfs_fs_destroy_inode+0x36/0x70
[33019.358475]  [<c10b58e3>] ? destroy_inode+0x73/0xd0
[33019.358517]  [<c10b5fa9>] ? dispose_list+0x79/0xf0
[33019.358558]  [<c10b61ed>] ? shrink_icache_memory+0x1cd/0x2b0
(Continue reading)

Christoph Hellwig | 3 Aug 2009 14:24
Favicon

Re: kernel BUG at lib/radix-tree.c:464

On Sun, Aug 02, 2009 at 11:28:21PM -0700, Christian Kujau wrote:
> Hi,
> 
> while lots of I/O (read, write) was in progress, this was captured via 
> remote syslog:

Can you test the patch I posted in
http://bugzilla.kernel.org/show_bug.cgi?id=13375 ?

_______________________________________________
xfs mailing list
xfs <at> oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

hank peng | 3 Aug 2009 16:32
Picon

Re: How to solve "No space left" problem on my 32bit machine?

2009/7/27 Eric Sandeen <sandeen <at> sandeen.net>:
> hank peng wrote:
>> 2009/7/27 Eric Sandeen <sandeen <at> sandeen.net>:
>>> hank peng wrote:
>>>> Hi, folks:
>>>> I have a 2.5T file system formatted with XFS, df tells me it still
>>>> have about 10G space available, but I can't create new files or
>>>> directory any more. Return message is "No space left on this device".
>>>> I searched solution for this problem through google, and found this:
>>>> http://oss.sgi.com/archives/xfs/2005-06/msg00347.html. I think it is a
>>>> known "No space left" problem. I wonder whether it can only
>>>> be solved on 64-bit machine? If on my 32-bit machine, what should I do?
>>> On very recent kernels you can use 64-bit inodes on 32-bit machines; you
>>> can try mounting with -o inode64 t allow this.
>>>
>> I tried -o inode64 option, but kernel gives me error message:
>> XFS: inode64 option not allowed on this system
>> I doubt this option can't be used on 32-bit machine.
>
> That's why I said you need a very recent kernel, it was added relatively
> recently:
>
> commit 6c31b93a14a453c8756ffd228e24910ffdf30c5d
> Author: Christoph Hellwig <hch <at> infradead.org>
> Date:   Fri Nov 28 14:23:32 2008 +1100
>
>    [XFS] allow inode64 mount option on 32 bit systems
>
> I believe this went into 2.6.29.
>
(Continue reading)

Eric Sandeen | 3 Aug 2009 20:55
Favicon
Gravatar

Re: How to solve "No space left" problem on my 32bit machine?

hank peng wrote:
> 2009/7/27 Eric Sandeen <sandeen <at> sandeen.net>:
>> hank peng wrote:
>>> 2009/7/27 Eric Sandeen <sandeen <at> sandeen.net>:
>>>> hank peng wrote:
>>>>> Hi, folks:
>>>>> I have a 2.5T file system formatted with XFS, df tells me it still
>>>>> have about 10G space available, but I can't create new files or
>>>>> directory any more. Return message is "No space left on this device".
>>>>> I searched solution for this problem through google, and found this:
>>>>> http://oss.sgi.com/archives/xfs/2005-06/msg00347.html. I think it is a
>>>>> known "No space left" problem. I wonder whether it can only
>>>>> be solved on 64-bit machine? If on my 32-bit machine, what should I do?
>>>> On very recent kernels you can use 64-bit inodes on 32-bit machines; you
>>>> can try mounting with -o inode64 t allow this.
>>>>
>>> I tried -o inode64 option, but kernel gives me error message:
>>> XFS: inode64 option not allowed on this system
>>> I doubt this option can't be used on 32-bit machine.
>> That's why I said you need a very recent kernel, it was added relatively
>> recently:
>>
>> commit 6c31b93a14a453c8756ffd228e24910ffdf30c5d
>> Author: Christoph Hellwig <hch <at> infradead.org>
>> Date:   Fri Nov 28 14:23:32 2008 +1100
>>
>>    [XFS] allow inode64 mount option on 32 bit systems
>>
>> I believe this went into 2.6.29.
>>
(Continue reading)

Alex Elder | 3 Aug 2009 21:11
Picon
Favicon

RE: [PATCH] SGI-PV: Read buffer overflow

> Check whether index is within bounds before grabbing the element.
> 
> Signed-off-by: Roel Kluin <roel.kluin <at> gmail.com>
> ---
> diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c
> index 9ff6e57..ef1d275 100644
> --- a/fs/xfs/xfs_da_btree.c
> +++ b/fs/xfs/xfs_da_btree.c
>  <at>  <at>  -1414,8 +1414,9  <at>  <at>  xfs_da_path_shift(xfs_da_state_t 
> *state, xfs_da_state_path_t *path,
>  	ASSERT(args != NULL);
>  	ASSERT(path != NULL);
>  	ASSERT((path->active > 0) && (path->active < XFS_DA_NODE_MAXDEPTH));
> -	level = (path->active-1) - 1;	/* skip bottom layer in path */
> -	for (blk = &path->blk[level]; level >= 0; blk--, level--) {
> +	/* skip bottom layer in path */
> +	for (level = (path->active-1) - 1; level >= 0; blk--, level--) {

No need to decrement "blk" above.  You are reassigning it anyway
in the next statement.

> +		blk = &path->blk[level];
>  		ASSERT(blk->bp != NULL);
>  		node = blk->bp->data;
>  		ASSERT(be16_to_cpu(node->hdr.info.magic) == XFS_DA_NODE_MAGIC);

Note that if level were < 0 upon entry to the loop in its previous
form, then the computed value of blk would never have been used.

					-Alex
(Continue reading)


Gmane