From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path:
Date: Thu, 28 Jan 2016 09:28:07 +0800
From: Antonio Quartulli
Message-ID: <20160128012807.GA22112@prodigo.lan>
References: <1453312110-32683-1-git-send-email-andrew@lunn.ch>
<1453312110-32683-5-git-send-email-andrew@lunn.ch>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
protocol="application/pgp-signature"; boundary="CE+1k2dSO48ffgeK"
Content-Disposition: inline
In-Reply-To: <1453312110-32683-5-git-send-email-andrew@lunn.ch>
Subject: Re: [B.A.T.M.A.N.] [PATCH 4/4] batman-adv: debugfs: Add netns
support
List-Id: The list for a Better Approach To Mobile Ad-hoc Networking
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
To: Andrew Lunn
Cc: b.a.t.m.a.n@lists.open-mesh.org
--CE+1k2dSO48ffgeK
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Wed, Jan 20, 2016 at 06:48:30PM +0100, Andrew Lunn wrote:
[...]
> +static DEFINE_MUTEX(batadv_debugfs_ns_mutex);
[...]
> +static void batadv_debugfs_ns_put(struct net *net)
> +{
> + struct batadv_debugfs_ns_entry *ns_entry;
> +
> + mutex_lock(&batadv_debugfs_ns_mutex);
> + list_for_each_entry(ns_entry, &batadv_debugfs_ns, link) {
> + if (ns_entry->net =3D=3D net) {
> + kref_put(&ns_entry->refcount, batadv_ns_entry_release);
> + break;
> + }
> + }
> + mutex_unlock(&batadv_debugfs_ns_mutex);
> +}
> =20
Andrew, is there any particular reason why in this case we use a mutex inst=
ead
of a spinlock + RCU ? I imagine it is something related to debugfs..or just=
to
make the code simpler as we don't really require a full-blown RCU strategy ?
> int batadv_debugfs_add_hardif(struct batadv_hard_iface *hard_iface)
> {
> + char *name =3D hard_iface->net_dev->name;
> + struct net *net =3D dev_net(hard_iface->net_dev);
here we should respect David's inverted Christmas tree rule :)
> struct batadv_debuginfo **bat_debug;
> + struct dentry *debugfs_ns_dir;
> struct dentry *file;
> =20
> if (!batadv_debugfs)
> goto out;
> =20
> - hard_iface->debug_dir =3D debugfs_create_dir(hard_iface->net_dev->name,
> - batadv_debugfs);
how about:
debugfs_ns_dir =3D batadv_debugfs;
> + if (net !=3D &init_net) {
> + debugfs_ns_dir =3D batadv_debugfs_ns_get(net);
> + if (!debugfs_ns_dir)
> + goto out;
}
hard_iface->debug_dir =3D debugfs_create_dir(name, debugfs_ns_dir);
isn't it nicer? :)
> if (!hard_iface->debug_dir)
> goto out;
> =20
[...]
> - bat_priv->debug_dir =3D debugfs_create_dir(dev->name, batadv_debugfs);
> + if (net !=3D &init_net) {
> + debugfs_ns_dir =3D batadv_debugfs_ns_get(net);
> + if (!debugfs_ns_dir)
> + goto out;
> + bat_priv->debug_dir =3D debugfs_create_dir(dev->name,
> + debugfs_ns_dir);
> + } else {
> + bat_priv->debug_dir =3D debugfs_create_dir(dev->name,
> + batadv_debugfs);
> + }
same as above
> +
> if (!bat_priv->debug_dir)
> goto out;
> =20
--=20
Antonio Quartulli
--CE+1k2dSO48ffgeK
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCAAGBQJWqW6mAAoJENpFlCjNi1MRSGkP/RXxw5tY/gi3akORvPRm3F1Q
5E50CajNu6otVtHNfcKu5eBTEix2dTyNC058I+CPEbMRf7tN47D96pEhGSYxWHNd
TSoBw2Rpgk8wfd1IWom1SfRewcxseV8uiIe0Gx73Otg6SO/BQa9+0MybaMjICjLF
9LUkSA23YGhPVjcSdgKrOJTbaHd0Inc1ojklhFBKYVCJsc/QL7qDJzGDQn06XVtF
9qAKjyegZqr0gxlbozke6kALXVt03vA1g/VP+g7m445yUf0eZxcMAe4ZTu84guD3
2rA7g2ENBTEim/5/3pDX0aAi8k/tr2RjaRJnr236pVmbWtTuz4GgTN9BTOUAdeng
4IkWbyyWemcXcfPVlro2i51mDPhkKR9nOhLCJDpMOZ8aAQT0rf8+OYfcz5vPeJxr
WYaDsuIh1v8wuVB3OrvFoQBKnaGihUGn0OCoYnnpgiINFZAh9PvTxjfAgoebJkAm
LTlAw0ZIa5EENfrwQlP2HvvQCwr+R4RURvLEvcIBgdKt4EZ58ccqJPdHdu9/zi9s
XqEP1ZNpxFquko8oH95ZDguIlL5+QlJKNj4S+MN8K/1OjNzBLN7zsmoY9Qas3zfX
uHf/4CK2lsrRqCFEpPPRW+OOuJNvyC4vI9sf8/IgGjAVEC8pj7p3unk6dfr74M3C
TatbqaY2KrqpqbF3blhN
=TD0N
-----END PGP SIGNATURE-----
--CE+1k2dSO48ffgeK--