Re: sget() misuse in nilfs

From: Ryusuke Konishi
Date: Wed May 06 2009 - 12:13:04 EST


Hi,
On Wed, 06 May 2009 15:28:59 +0900 (JST), Ryusuke Konishi wrote:
> If we treat read-only mount as the latest snapshot at the time (though
> we didn't take this interpretation), the transitions can be reduced
> to:
>
> * r/w -> r/w. Allowed.
> * r/w -> snapshot. Allowed if no checkpoint number was given (or the
> latest checkpoint was specified)
> * snapshot -> r/w. Allowed if it's the latest one and no r/w is there.
> * snapshot -> snapshot. Only if it's the same.
>
> Right?

Ah, I had forgotten garbage collection (GC).

GC can break checkpoints which are not marked as snapshot. ro-mount
cannot coexist with rw-mount because GC works while an rw-mount is
there.

Sorry, the above interpretation was not easily realized.

> But it still needs test_exclusive_mount().
>
> The test_exclusive_mount() may be eliminable by adding rw-mount-exists
> flag on the_nilfs struct. I'll take some thinking.

The elimination of test_exclusive_mount() was possible by this method
if we can treat ro-mount as the latest checkpoint at the time.

I'd like to consider if a similiar elimination is possible in case
that ro-mount and rw-mount cannot coexist.

Regards,
Ryusuke Konishi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/