All of lore.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org>
To: Ryusuke Konishi
	<konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [RFC] simplifying the "is it mounted" checks for nilfs2
Date: Fri, 5 Jul 2013 23:03:09 +0100	[thread overview]
Message-ID: <20130705220309.GU4165@ZenIV.linux.org.uk> (raw)

Do you see any problems with just giving nilfs ->drop_inode() instance
like this:
int nilfs2_drop_inode(struct inode *inode)
{
	if (unlikely(inode->i_ino == NILFS_ROOT_INO))
		return true;
	return generic_drop_inode(inode);
}
Then nilfs_root will live exactly until we unmount the damn thing, giving us
int nilfs_checkpoint_is_mounted(struct super_block *sb, __u64 cno)
{
        struct the_nilfs *nilfs = sb->s_fs_info;

        if (cno < 0 || cno > nilfs->ns_cno)
                return false;

        if (cno >= nilfs_last_cno(nilfs))
                return true;    /* protect recent checkpoints */

        return nilfs_lookup_root(nilfs, cno) != NULL;
}
while the logics in nilfs_mount becoming simply
	busy = d_count(s->s_root) > 1;
and we don't need to bother with nilfs_try_to_shrink_tree() at all.

I might be missing something, but it looks like that would work...
Comments?
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

             reply	other threads:[~2013-07-05 22:03 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-05 22:03 Al Viro [this message]
     [not found] ` <20130705220309.GU4165-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org>
2013-07-05 23:33   ` [RFC] simplifying the "is it mounted" checks for nilfs2 Al Viro
2013-07-06  8:56     ` Ryusuke Konishi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130705220309.GU4165@ZenIV.linux.org.uk \
    --to=viro-3bdd1+5odreifsdqtta3olvcufugdwfn@public.gmane.org \
    --cc=konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org \
    --cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.