public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* XFS internal error xfs_iformat(realtime) even after xfs_repair.
@ 2011-01-17 12:12 Ajeet Yadav
  2011-01-18  4:57 ` Dave Chinner
  0 siblings, 1 reply; 7+ messages in thread
From: Ajeet Yadav @ 2011-01-17 12:12 UTC (permalink / raw)
  To: xfs


[-- Attachment #1.1: Type: text/plain, Size: 3945 bytes --]

Kernel: 2.6.30.9, XFS backported from 2.6.34, xfsprogs-3.0.5

I used a script
1. create some file, directories, symlinks
2. unmount the file system
3. run xfs_bd with blocktrash
4. xfs_xfsrepair -L
5. list "ls -lR"
6. remove all file and directory "rm -rf *

Often during testing I get the below backtrace from kernel during ls, rm
even though I already run xfs_repair on it.
Is it related to xfsrepair or xfs ?. I think xfs_repair must have detected
this problem and corrected it.

There is similar problem already reported by
http://oss.sgi.com/archives/xfs/2010-06/msg00349.html

xfs_repair log
-------------------
xfs_repair -L /dev/sda1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
Phase 5 - rebuild AG headers and trees...
        - reset superblock...
Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done


xfs log duing ls operation
------------------------------------

drwxr-xr-x 2 root 0 6 Jan 1 00:00 9.dir1

drwxr-xr-xFilesystem "sda1": corrupt dinode 8053, has realtime flag set.
Unmount and run xfs_repair.

c803e500: 49 4e a1 ff 02 01 00 00 00 00 00 00 00 00 00 00 IN..............

Filesystem "sda1": XFS internal error xfs_iformat(realtime) at line 356 of
file fs/xfs/xfs_inode.c. Caller 0xc019b328

Backtrace:

[<c00279b0>] (dump_backtrace+0x0/0x110) from [<c02f2bd0>]
(dump_stack+0x18/0x1c)

r6:c8962400 r5:c039db13 r4:00000001 r3:c89d1be8

[<c02f2bb8>] (dump_stack+0x0/0x1c) from [<c018fa54>]
(xfs_error_report+0x4c/0x5c)

[<c018fa08>] (xfs_error_report+0x0/0x5c) from [<c018fac0>]
(xfs_corruption_error+0x5c/0x68)

[<c018fa64>] (xfs_corruption_error+0x0/0x68) from [<c019ae38>]
(xfs_iformat+0x1b4/0x5dc)

r6:c019b328 r5:c8cf0be0 r4:c803e500

[<c019ac84>] (xfs_iformat+0x0/0x5dc) from [<c019b328>]
(xfs_iread+0xc8/0x198)

r9:00001f75 r8:c8962400 r7:00000000 r6:00000000 r5:c803e500

r4:c8cf0be0

[<c019b260>] (xfs_iread+0x0/0x198) from [<c0195294>] (xfs_iget+0x558/0x8c4)

[<c0194d3c>] (xfs_iget+0x0/0x8c4) from [<c01b4b28>] (xfs_lookup+0x128/0x15c)

[<c01b4a00>] (xfs_lookup+0x0/0x15c) from [<c01c1ab4>]
(xfs_vn_lookup+0x48/0x90)

[<c01c1a6c>] (xfs_vn_lookup+0x0/0x90) from [<c00c7da8>]
(do_lookup+0xcc/0x194)

r6:c8c66d6c r5:c89d1e08 r4:c89d1e90

[<c00c7cdc>] (do_lookup+0x0/0x194) from [<c00c9a30>]
(__link_path_walk+0x9b8/0xe68)

[<c00c9078>] (__link_path_walk+0x0/0xe68) from [<c00ca08c>]
(path_walk+0x50/0x9c)

[<c00ca03c>] (path_walk+0x0/0x9c) from [<c00ca258>]
(do_path_lookup+0x138/0x160)

r7:00000001 r6:c89d1e90 r5:c89d0000 r4:c89f2000

[<c00ca120>] (do_path_lookup+0x0/0x160) from [<c00cac64>]
(user_path_at+0x60/0x94)

r7:c89d1f08 r6:ffffff9c r5:c89d1e90 r4:c89f2000

[<c00cac04>] (user_path_at+0x0/0x94) from [<c00c2bb8>]
(vfs_fstatat+0x34/0x64)

r8:c0023528 r7:000000c4 r6:00182320 r5:c89d1f40 r4:c89d1f08

[<c00c2b84>] (vfs_fstatat+0x0/0x64) from [<c00c2c48>] (vfs_lstat+0x24/0x28)

r6:00182320 r5:beb476b8 r4:c89d1f40

[<c00c2c24>] (vfs_lstat+0x0/0x28) from [<c00c2c6c>] (sys_lstat64+0x20/0x3c)

[<c00c2c4c>] (sys_lstat64+0x0/0x3c) from [<c0023380>]
(ret_fast_syscall+0x0/0x2c)

r5:001895a0 r4:00000000

2 root 0 6 Jan 1 00:00 9.dir2

drwxr-xr-x 2 root 0 6 Jan 1 00:00 9.dir3

[-- Attachment #1.2: Type: text/html, Size: 4920 bytes --]

[-- Attachment #2: Type: text/plain, Size: 121 bytes --]

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: XFS internal error xfs_iformat(realtime) even after xfs_repair.
  2011-01-17 12:12 XFS internal error xfs_iformat(realtime) even after xfs_repair Ajeet Yadav
@ 2011-01-18  4:57 ` Dave Chinner
  2011-01-19  1:06   ` Ajeet Yadav
  0 siblings, 1 reply; 7+ messages in thread
From: Dave Chinner @ 2011-01-18  4:57 UTC (permalink / raw)
  To: Ajeet Yadav; +Cc: xfs

On Mon, Jan 17, 2011 at 09:12:54PM +0900, Ajeet Yadav wrote:
> Kernel: 2.6.30.9, XFS backported from 2.6.34, xfsprogs-3.0.5
> 
> I used a script
> 1. create some file, directories, symlinks
> 2. unmount the file system
> 3. run xfs_bd with blocktrash
> 4. xfs_xfsrepair -L
> 5. list "ls -lR"
> 6. remove all file and directory "rm -rf *

OK, so you are effectively corrupting random blocks by introducing
random bit errors in the blocks. No surprise that some errors are
not being detected - what is the blocktrash command that you are
using?

> Often during testing I get the below backtrace from kernel during ls, rm
> even though I already run xfs_repair on it.
> Is it related to xfsrepair or xfs ?. I think xfs_repair must have detected
> this problem and corrected it.

xfs_repair is not checking the di_flags field in the inode for
sanity, hence having a wrong flag set is going unnoticed.

> There is similar problem already reported by
> http://oss.sgi.com/archives/xfs/2010-06/msg00349.html

Similar error message (xfs_iformt found an inode corruption), but
that one is a completely different problem.

Does the patch below (compile tested only) detect the bad inode?

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

xfs_repair: validate inode di_flags field

xfs_repair is not validating the di_flags field in the inode for
sanity. Block fuzzing indicates that we are not picking situations
like the RT bit being set on filesystems without realtime devices.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
 repair/dinode.c |   62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/repair/dinode.c b/repair/dinode.c
index 2fa850d..e05d4e0 100644
--- a/repair/dinode.c
+++ b/repair/dinode.c
@@ -2519,6 +2519,68 @@ process_dinode_int(xfs_mount_t *mp,
 		goto clear_bad_out;
 	}
 
+	/*
+	 * check that we only have valid flags set, and those that are set make
+	 * sense.
+	 */
+	if (dino->di_flags) {
+		uint16_t flags = be16_to_cpu(dino->di_flags);
+
+		if (flags & ~XFS_DIFLAG_ANY) {
+			do_warn(_("Bad flags set in inode %llu"), lino);
+			flags &= ~XFS_DIFLAG_ANY;
+		}
+
+		if (flags & (XFS_DIFLAG_REALTIME | XFS_DIFLAG_RTINHERIT)) {
+			/* need an rt-dev! */
+			if (!rt_name) {
+				do_warn(_(
+	"inode %llu has RT flag set but there is no RT device"), lino);
+				flags &= ~(XFS_DIFLAG_REALTIME |
+						XFS_DIFLAG_RTINHERIT);
+			}
+		}
+		if (flags & XFS_DIFLAG_NEWRTBM_BIT) {
+			/* must be a rt bitmap inode */
+			if (lino != mp->m_sb.sb_rbmino) {
+				do_warn(_("inode %llu not rt bitmap"), lino);
+				flags &= ~XFS_DIFLAG_NEWRTBM_BIT;
+			}
+		}
+		if (flags & (XFS_DIFLAG_RTINHERIT |
+			     XFS_DIFLAG_EXTSZINHERIT |
+			     XFS_DIFLAG_PROJINHERIT |
+			     XFS_DIFLAG_NOSYMLINKS)) {
+			/* must be a directory */
+			if (di_mode && !S_ISDIR(di_mode)) {
+				do_warn(_(
+			"directory flags set on non-directory inode %llu"),
+					lino);
+				flags &= ~(XFS_DIFLAG_RTINHERIT |
+						XFS_DIFLAG_EXTSZINHERIT |
+						XFS_DIFLAG_PROJINHERIT |
+						XFS_DIFLAG_NOSYMLINKS);
+			}
+		}
+		if (flags & (XFS_DIFLAG_REALTIME | XFS_XFLAG_EXTSIZE)) {
+			/* must be a file */
+			if (di_mode && !S_ISREG(di_mode)) {
+				do_warn(_(
+			"file flags set on non-file inode %llu"), lino);
+				flags &= ~(XFS_DIFLAG_REALTIME |
+						XFS_XFLAG_EXTSIZE);
+			}
+		}
+		if (!verify_mode && flags != be16_to_cpu(dino->di_flags)) {
+			if (!no_modify) {
+				do_warn(_(", fixing bad flags.\n"));
+				dino->di_flags = cpu_to_be16(flags);
+				*dirty = 1;
+			} else
+				do_warn(_(", would fix bad flags.\n"));
+		}
+	}
+
 	if (verify_mode)
 		return retval;
 

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: XFS internal error xfs_iformat(realtime) even after xfs_repair.
  2011-01-18  4:57 ` Dave Chinner
@ 2011-01-19  1:06   ` Ajeet Yadav
  2011-02-01  1:26     ` Ajeet Yadav
  0 siblings, 1 reply; 7+ messages in thread
From: Ajeet Yadav @ 2011-01-19  1:06 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs


[-- Attachment #1.1: Type: text/plain, Size: 5618 bytes --]

Please find my response below

On Tue, Jan 18, 2011 at 1:57 PM, Dave Chinner <david@fromorbit.com> wrote:

> On Mon, Jan 17, 2011 at 09:12:54PM +0900, Ajeet Yadav wrote:
> > Kernel: 2.6.30.9, XFS backported from 2.6.34, xfsprogs-3.0.5
> >
> > I used a script
> > 1. create some file, directories, symlinks
> > 2. unmount the file system
> > 3. run xfs_bd with blocktrash
> > 4. xfs_xfsrepair -L
> > 5. list "ls -lR"
> > 6. remove all file and directory "rm -rf *
>
> OK, so you are effectively corrupting random blocks by introducing
> random bit errors in the blocks. No surprise that some errors are
> not being detected - what is the blocktrash command that you are
> using?
>

xfs_db -x -c blockget -c "blocktrash -s 12345 -n 256 -x 1 -y 1024 -3"
/dev/sda1


>
> > Often during testing I get the below backtrace from kernel during ls, rm
> > even though I already run xfs_repair on it.
> > Is it related to xfsrepair or xfs ?. I think xfs_repair must have
> detected
> > this problem and corrected it.
>
> xfs_repair is not checking the di_flags field in the inode for
> sanity, hence having a wrong flag set is going unnoticed.
>

ok


>
> > There is similar problem already reported by
> > http://oss.sgi.com/archives/xfs/2010-06/msg00349.html
>
> Similar error message (xfs_iformt found an inode corruption), but
> that one is a completely different problem.
>
> Does the patch below (compile tested only) detect the bad inode?
>

Yes I have tested it, It seems to work fine,
I did not find this patch in mainline xfsprogs git, also I need to modify
the patch somewhat.
dino->di_flags  ===================> dinoc->di_flags
because dino is not having any member named di_flags in xfsprogs-3.0.5, so I
used dinoc instead.


>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@fromorbit.com
>
> xfs_repair: validate inode di_flags field
>
> xfs_repair is not validating the di_flags field in the inode for
> sanity. Block fuzzing indicates that we are not picking situations
> like the RT bit being set on filesystems without realtime devices.
>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
>  repair/dinode.c |   62
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 62 insertions(+), 0 deletions(-)
>
> diff --git a/repair/dinode.c b/repair/dinode.c
> index 2fa850d..e05d4e0 100644
> --- a/repair/dinode.c
> +++ b/repair/dinode.c
> @@ -2519,6 +2519,68 @@ process_dinode_int(xfs_mount_t *mp,
>                goto clear_bad_out;
>        }
>
> +       /*
> +        * check that we only have valid flags set, and those that are set
> make
> +        * sense.
> +        */
> +       if (dino->di_flags) {
> +               uint16_t flags = be16_to_cpu(dino->di_flags);
> +
> +               if (flags & ~XFS_DIFLAG_ANY) {
> +                       do_warn(_("Bad flags set in inode %llu"), lino);
> +                       flags &= ~XFS_DIFLAG_ANY;
> +               }
> +
> +               if (flags & (XFS_DIFLAG_REALTIME | XFS_DIFLAG_RTINHERIT)) {
> +                       /* need an rt-dev! */
> +                       if (!rt_name) {
> +                               do_warn(_(
> +       "inode %llu has RT flag set but there is no RT device"), lino);
> +                               flags &= ~(XFS_DIFLAG_REALTIME |
> +                                               XFS_DIFLAG_RTINHERIT);
> +                       }
> +               }
> +               if (flags & XFS_DIFLAG_NEWRTBM_BIT) {
> +                       /* must be a rt bitmap inode */
> +                       if (lino != mp->m_sb.sb_rbmino) {
> +                               do_warn(_("inode %llu not rt bitmap"),
> lino);
> +                               flags &= ~XFS_DIFLAG_NEWRTBM_BIT;
> +                       }
> +               }
> +               if (flags & (XFS_DIFLAG_RTINHERIT |
> +                            XFS_DIFLAG_EXTSZINHERIT |
> +                            XFS_DIFLAG_PROJINHERIT |
> +                            XFS_DIFLAG_NOSYMLINKS)) {
> +                       /* must be a directory */
> +                       if (di_mode && !S_ISDIR(di_mode)) {
> +                               do_warn(_(
> +                       "directory flags set on non-directory inode %llu"),
> +                                       lino);
> +                               flags &= ~(XFS_DIFLAG_RTINHERIT |
> +                                               XFS_DIFLAG_EXTSZINHERIT |
> +                                               XFS_DIFLAG_PROJINHERIT |
> +                                               XFS_DIFLAG_NOSYMLINKS);
> +                       }
> +               }
> +               if (flags & (XFS_DIFLAG_REALTIME | XFS_XFLAG_EXTSIZE)) {
> +                       /* must be a file */
> +                       if (di_mode && !S_ISREG(di_mode)) {
> +                               do_warn(_(
> +                       "file flags set on non-file inode %llu"), lino);
> +                               flags &= ~(XFS_DIFLAG_REALTIME |
> +                                               XFS_XFLAG_EXTSIZE);
> +                       }
> +               }
> +               if (!verify_mode && flags != be16_to_cpu(dino->di_flags)) {
> +                       if (!no_modify) {
> +                               do_warn(_(", fixing bad flags.\n"));
> +                               dino->di_flags = cpu_to_be16(flags);
> +                               *dirty = 1;
> +                       } else
> +                               do_warn(_(", would fix bad flags.\n"));
> +               }
> +       }
> +
>        if (verify_mode)
>                return retval;
>
>

[-- Attachment #1.2: Type: text/html, Size: 7119 bytes --]

[-- Attachment #2: Type: text/plain, Size: 121 bytes --]

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: XFS internal error xfs_iformat(realtime) even after xfs_repair.
  2011-01-19  1:06   ` Ajeet Yadav
@ 2011-02-01  1:26     ` Ajeet Yadav
  2011-02-01  4:12       ` Dave Chinner
  0 siblings, 1 reply; 7+ messages in thread
From: Ajeet Yadav @ 2011-02-01  1:26 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs


[-- Attachment #1.1: Type: text/plain, Size: 6123 bytes --]

Hello Dave,
Thank you for patch "xfs_repair: validate inode di_flags field" it works
fine after a minor modifications "dino" to "dinoc", I wish to know when this
will be available in mainline xfsprogs. Otherwise we need to maintain them
separately.

On Wed, Jan 19, 2011 at 10:06 AM, Ajeet Yadav <ajeet.yadav.77@gmail.com>wrote:

> Please find my response below
>
>  On Tue, Jan 18, 2011 at 1:57 PM, Dave Chinner <david@fromorbit.com>wrote:
>
>> On Mon, Jan 17, 2011 at 09:12:54PM +0900, Ajeet Yadav wrote:
>> > Kernel: 2.6.30.9, XFS backported from 2.6.34, xfsprogs-3.0.5
>> >
>> > I used a script
>> > 1. create some file, directories, symlinks
>> > 2. unmount the file system
>> > 3. run xfs_bd with blocktrash
>> > 4. xfs_xfsrepair -L
>> > 5. list "ls -lR"
>> > 6. remove all file and directory "rm -rf *
>>
>> OK, so you are effectively corrupting random blocks by introducing
>> random bit errors in the blocks. No surprise that some errors are
>> not being detected - what is the blocktrash command that you are
>> using?
>>
>
> xfs_db -x -c blockget -c "blocktrash -s 12345 -n 256 -x 1 -y 1024 -3"
> /dev/sda1
>
>
>>
>> > Often during testing I get the below backtrace from kernel during ls, rm
>> > even though I already run xfs_repair on it.
>> > Is it related to xfsrepair or xfs ?. I think xfs_repair must have
>> detected
>> > this problem and corrected it.
>>
>> xfs_repair is not checking the di_flags field in the inode for
>> sanity, hence having a wrong flag set is going unnoticed.
>>
>
> ok
>
>
>>
>> > There is similar problem already reported by
>> > http://oss.sgi.com/archives/xfs/2010-06/msg00349.html
>>
>> Similar error message (xfs_iformt found an inode corruption), but
>> that one is a completely different problem.
>>
>> Does the patch below (compile tested only) detect the bad inode?
>>
>
> Yes I have tested it, It seems to work fine,
> I did not find this patch in mainline xfsprogs git, also I need to modify
> the patch somewhat.
> dino->di_flags  ===================> dinoc->di_flags
> because dino is not having any member named di_flags in xfsprogs-3.0.5, so
> I used dinoc instead.
>
>
>>
>> Cheers,
>>
>> Dave.
>> --
>> Dave Chinner
>> david@fromorbit.com
>>
>> xfs_repair: validate inode di_flags field
>>
>> xfs_repair is not validating the di_flags field in the inode for
>> sanity. Block fuzzing indicates that we are not picking situations
>> like the RT bit being set on filesystems without realtime devices.
>>
>> Signed-off-by: Dave Chinner <dchinner@redhat.com>
>> ---
>>  repair/dinode.c |   62
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  1 files changed, 62 insertions(+), 0 deletions(-)
>>
>> diff --git a/repair/dinode.c b/repair/dinode.c
>> index 2fa850d..e05d4e0 100644
>> --- a/repair/dinode.c
>> +++ b/repair/dinode.c
>> @@ -2519,6 +2519,68 @@ process_dinode_int(xfs_mount_t *mp,
>>                goto clear_bad_out;
>>        }
>>
>> +       /*
>> +        * check that we only have valid flags set, and those that are set
>> make
>> +        * sense.
>> +        */
>> +       if (dino->di_flags) {
>> +               uint16_t flags = be16_to_cpu(dino->di_flags);
>> +
>> +               if (flags & ~XFS_DIFLAG_ANY) {
>> +                       do_warn(_("Bad flags set in inode %llu"), lino);
>> +                       flags &= ~XFS_DIFLAG_ANY;
>> +               }
>> +
>> +               if (flags & (XFS_DIFLAG_REALTIME | XFS_DIFLAG_RTINHERIT))
>> {
>> +                       /* need an rt-dev! */
>> +                       if (!rt_name) {
>> +                               do_warn(_(
>> +       "inode %llu has RT flag set but there is no RT device"), lino);
>> +                               flags &= ~(XFS_DIFLAG_REALTIME |
>> +                                               XFS_DIFLAG_RTINHERIT);
>> +                       }
>> +               }
>> +               if (flags & XFS_DIFLAG_NEWRTBM_BIT) {
>> +                       /* must be a rt bitmap inode */
>> +                       if (lino != mp->m_sb.sb_rbmino) {
>> +                               do_warn(_("inode %llu not rt bitmap"),
>> lino);
>> +                               flags &= ~XFS_DIFLAG_NEWRTBM_BIT;
>> +                       }
>> +               }
>> +               if (flags & (XFS_DIFLAG_RTINHERIT |
>> +                            XFS_DIFLAG_EXTSZINHERIT |
>> +                            XFS_DIFLAG_PROJINHERIT |
>> +                            XFS_DIFLAG_NOSYMLINKS)) {
>> +                       /* must be a directory */
>> +                       if (di_mode && !S_ISDIR(di_mode)) {
>> +                               do_warn(_(
>> +                       "directory flags set on non-directory inode
>> %llu"),
>> +                                       lino);
>> +                               flags &= ~(XFS_DIFLAG_RTINHERIT |
>> +                                               XFS_DIFLAG_EXTSZINHERIT |
>> +                                               XFS_DIFLAG_PROJINHERIT |
>> +                                               XFS_DIFLAG_NOSYMLINKS);
>> +                       }
>> +               }
>> +               if (flags & (XFS_DIFLAG_REALTIME | XFS_XFLAG_EXTSIZE)) {
>> +                       /* must be a file */
>> +                       if (di_mode && !S_ISREG(di_mode)) {
>> +                               do_warn(_(
>> +                       "file flags set on non-file inode %llu"), lino);
>> +                               flags &= ~(XFS_DIFLAG_REALTIME |
>> +                                               XFS_XFLAG_EXTSIZE);
>> +                       }
>> +               }
>> +               if (!verify_mode && flags != be16_to_cpu(dino->di_flags))
>> {
>> +                       if (!no_modify) {
>> +                               do_warn(_(", fixing bad flags.\n"));
>> +                               dino->di_flags = cpu_to_be16(flags);
>> +                               *dirty = 1;
>> +                       } else
>> +                               do_warn(_(", would fix bad flags.\n"));
>> +               }
>> +       }
>> +
>>        if (verify_mode)
>>                return retval;
>>
>>
>

[-- Attachment #1.2: Type: text/html, Size: 7896 bytes --]

[-- Attachment #2: Type: text/plain, Size: 121 bytes --]

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: XFS internal error xfs_iformat(realtime) even after xfs_repair.
  2011-02-01  1:26     ` Ajeet Yadav
@ 2011-02-01  4:12       ` Dave Chinner
  2011-02-01 21:28         ` Christoph Hellwig
  0 siblings, 1 reply; 7+ messages in thread
From: Dave Chinner @ 2011-02-01  4:12 UTC (permalink / raw)
  To: Ajeet Yadav; +Cc: xfs

On Tue, Feb 01, 2011 at 10:26:34AM +0900, Ajeet Yadav wrote:
> Hello Dave,
> Thank you for patch "xfs_repair: validate inode di_flags field" it works
> fine after a minor modifications "dino" to "dinoc", I wish to know when this
> will be available in mainline xfsprogs. Otherwise we need to maintain them
> separately.

It will be in the next release, whenever we make that.

I've got to finish of the sync of the userspace/kernel code, there's
a few fixes already in the -dev branch as well, we need to pick up
the FIEMAP changes to xfs_io, and so on. We probably should get t─is
all done and plan for a new release in the next few weeks...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: XFS internal error xfs_iformat(realtime) even after xfs_repair.
  2011-02-01  4:12       ` Dave Chinner
@ 2011-02-01 21:28         ` Christoph Hellwig
  2011-02-01 23:04           ` Dave Chinner
  0 siblings, 1 reply; 7+ messages in thread
From: Christoph Hellwig @ 2011-02-01 21:28 UTC (permalink / raw)
  To: Dave Chinner; +Cc: Ajeet Yadav, xfs

> It will be in the next release, whenever we make that.
> 
> I've got to finish of the sync of the userspace/kernel code, there's
> a few fixes already in the -dev branch as well, we need to pick up
> the FIEMAP changes to xfs_io, and so on. We probably should get t???is
> all done and plan for a new release in the next few weeks...

I'm a bit concerned about the coverage of the libxfs resync.  My
preference would be to get out a minor release focusses at the repair
fixes, then merge the resync to master directly after release and make
sure it gets into all the test setups for a while before it gets
released.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: XFS internal error xfs_iformat(realtime) even after xfs_repair.
  2011-02-01 21:28         ` Christoph Hellwig
@ 2011-02-01 23:04           ` Dave Chinner
  0 siblings, 0 replies; 7+ messages in thread
From: Dave Chinner @ 2011-02-01 23:04 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Ajeet Yadav, xfs

On Tue, Feb 01, 2011 at 04:28:32PM -0500, Christoph Hellwig wrote:
> > It will be in the next release, whenever we make that.
> > 
> > I've got to finish of the sync of the userspace/kernel code, there's
> > a few fixes already in the -dev branch as well, we need to pick up
> > the FIEMAP changes to xfs_io, and so on. We probably should get t???is
> > all done and plan for a new release in the next few weeks...
> 
> I'm a bit concerned about the coverage of the libxfs resync.  My
> preference would be to get out a minor release focusses at the repair
> fixes, then merge the resync to master directly after release and make
> sure it gets into all the test setups for a while before it gets
> released.

Sure, I have no problem with that - this is the first mention of a
new release and I was just mentioning everything that is happening
at the moment. Doing a point release with all the known
fixes before the large sync makes sense...

Cheers,

dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-02-01 23:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-17 12:12 XFS internal error xfs_iformat(realtime) even after xfs_repair Ajeet Yadav
2011-01-18  4:57 ` Dave Chinner
2011-01-19  1:06   ` Ajeet Yadav
2011-02-01  1:26     ` Ajeet Yadav
2011-02-01  4:12       ` Dave Chinner
2011-02-01 21:28         ` Christoph Hellwig
2011-02-01 23:04           ` Dave Chinner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox