diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2024-03-22 02:58:00 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2024-03-23 06:59:00 +0000 |
commit | d3efbe0132b24e8660df836905cda7662f85a154 (patch) | |
tree | 8cd85f6040b57d1a432b6ebf4e0cb142616fc2f9 /sys/fs | |
parent | 15bfd7cf27898b5d34e9fa08c10f9cc69da05977 (diff) | |
download | src-d3efbe0132b24e8660df836905cda7662f85a154.tar.gz src-d3efbe0132b24e8660df836905cda7662f85a154.zip |
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/devfs/devfs_vnops.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index 3b8a624fe620..a35f6dbf9520 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -177,6 +177,26 @@ devfs_set_cdevpriv(void *priv, d_priv_dtor_t *priv_dtr) return (error); } +int +devfs_foreach_cdevpriv(struct cdev *dev, int (*cb)(void *data, void *arg), + void *arg) +{ + struct cdev_priv *cdp; + struct cdev_privdata *p; + int error; + + cdp = cdev2priv(dev); + error = 0; + mtx_lock(&cdevpriv_mtx); + LIST_FOREACH(p, &cdp->cdp_fdpriv, cdpd_list) { + error = cb(p->cdpd_data, arg); + if (error != 0) + break; + } + mtx_unlock(&cdevpriv_mtx); + return (error); +} + void devfs_destroy_cdevpriv(struct cdev_privdata *p) { |