Re: regression in 2.6.37?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 28 Feb 2011 11:21:46 +0900 (JST), Ryusuke Konishi wrote:
> On Mon, 28 Feb 2011 10:58:36 +0900, Jiro SEKIBA wrote:
> > 
> > At Mon, 28 Feb 2011 10:33:24 +0900,
> > Jiro SEKIBA wrote:
> > > 
> > > Hi,
> > > 
> > > I found that none of the checpoints are flagged 'i'.
> > > It looks like it happens after 2.6.37.
> > > 
> > > So whenever I only execute "chcp ss <cp>" without any filesystem change,
> > > nilfs volume create new cp without 'i'.
> > > Before 2.6.37, it creates new cp with 'i'.
> > 
> > This, by the way, causes that nilfs2_ss_manager creates
> > snapshots forever and useless as a result.
> > 
> > So I would really like to turn it back to the normal behavior.
> > It is really critical for the application.
> > 
> > thanks
> > 
> > regards,
> 
> Arrh, that sounds so bad.  Ok, I'll look into the problem ASAP.
> 
> Ryusuke Konishi

Actually, this tourned out to be a regression on 2.6.37.
The following patch will fix this.

Could you confirm that it corrects your problem?

Thanks,
Ryusuke Konishi
---
From: Ryusuke Konishi <konishi.ryusuke@xxxxxxxxxxxxx>

nilfs2: fix regression that i-flag is not set on changeless checkpoints

According to the report from Jiro SEKIBA titled "regression in
2.6.37?"  (Message-Id: <8739n8vs1f.wl%jir@xxxxxxxxxx>), on 2.6.37 and
later kernels, lscp command no longer displays "i" flag on checkpoints
that snapshot operations or garbage collection created.

This is a regression of nilfs2 checkpointing function, and it's
critical since it broke behavior of a part of nilfs2 applications.
For instance, snapshot manager of TimeBrowse gets to create
meaningless snapshots continuously; snapshot creation triggers another
checkpoint, but applications cannot distinguish whether the new
checkpoint contains meaningful changes or not without the i-flag.

This patch fixes the regression and brings that application behavior
back to normal.

Reported-by: Jiro SEKIBA <jir@xxxxxxxxx>
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@xxxxxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxx>  [2.6.37]
---
 fs/nilfs2/segment.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index 55ebae5..2de9f63 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -430,7 +430,8 @@ static void nilfs_segctor_begin_finfo(struct nilfs_sc_info *sci,
 	nilfs_segctor_map_segsum_entry(
 		sci, &sci->sc_binfo_ptr, sizeof(struct nilfs_finfo));
 
-	if (inode->i_sb && !test_bit(NILFS_SC_HAVE_DELTA, &sci->sc_flags))
+	if (NILFS_I(inode)->i_root &&
+	    !test_bit(NILFS_SC_HAVE_DELTA, &sci->sc_flags))
 		set_bit(NILFS_SC_HAVE_DELTA, &sci->sc_flags);
 	/* skip finfo */
 }
-- 
1.7.3.5

--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux BTRFS]     [Linux CIFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux