Message ID | 20191022191751.3780-2-cneirabustos@gmail.com |
---|---|
State | Not Applicable |
Delegated to: | BPF Maintainers |
Headers | show |
Series | BPF: New helper to obtain namespace data from current task | expand |
Hi, Eric, Could you take a look at this patch the series as well? If it looks good, could you ack the patch #1? Thanks! On 10/22/19 12:17 PM, Carlos Neira wrote: > ns_match returns true if the namespace inode and dev_t matches the ones > provided by the caller. > > Signed-off-by: Carlos Neira <cneirabustos@gmail.com> > --- > fs/nsfs.c | 14 ++++++++++++++ > include/linux/proc_ns.h | 2 ++ > 2 files changed, 16 insertions(+) > > diff --git a/fs/nsfs.c b/fs/nsfs.c > index a0431642c6b5..ef59cf347285 100644 > --- a/fs/nsfs.c > +++ b/fs/nsfs.c > @@ -245,6 +245,20 @@ struct file *proc_ns_fget(int fd) > return ERR_PTR(-EINVAL); > } > > +/** > + * ns_match() - Returns true if current namespace matches dev/ino provided. > + * @ns_common: current ns > + * @dev: dev_t from nsfs that will be matched against current nsfs > + * @ino: ino_t from nsfs that will be matched against current nsfs > + * > + * Return: true if dev and ino matches the current nsfs. > + */ > +bool ns_match(const struct ns_common *ns, dev_t dev, ino_t ino) > +{ > + return (ns->inum == ino) && (nsfs_mnt->mnt_sb->s_dev == dev); > +} > + > + > static int nsfs_show_path(struct seq_file *seq, struct dentry *dentry) > { > struct inode *inode = d_inode(dentry); > diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h > index d31cb6215905..1da9f33489f3 100644 > --- a/include/linux/proc_ns.h > +++ b/include/linux/proc_ns.h > @@ -82,6 +82,8 @@ typedef struct ns_common *ns_get_path_helper_t(void *); > extern void *ns_get_path_cb(struct path *path, ns_get_path_helper_t ns_get_cb, > void *private_data); > > +extern bool ns_match(const struct ns_common *ns, dev_t dev, ino_t ino); > + > extern int ns_get_name(char *buf, size_t size, struct task_struct *task, > const struct proc_ns_operations *ns_ops); > extern void nsfs_init(void); >
Ping again. Eric, could you take a look at this patch and ack it if it is okay? Thanks! On 10/22/19 8:05 PM, Yonghong Song wrote: > > Hi, Eric, > > Could you take a look at this patch the series as well? > If it looks good, could you ack the patch #1? > > Thanks! > > On 10/22/19 12:17 PM, Carlos Neira wrote: >> ns_match returns true if the namespace inode and dev_t matches the ones >> provided by the caller. >> >> Signed-off-by: Carlos Neira <cneirabustos@gmail.com> >> --- >> fs/nsfs.c | 14 ++++++++++++++ >> include/linux/proc_ns.h | 2 ++ >> 2 files changed, 16 insertions(+) >> >> diff --git a/fs/nsfs.c b/fs/nsfs.c >> index a0431642c6b5..ef59cf347285 100644 >> --- a/fs/nsfs.c >> +++ b/fs/nsfs.c >> @@ -245,6 +245,20 @@ struct file *proc_ns_fget(int fd) >> return ERR_PTR(-EINVAL); >> } >> >> +/** >> + * ns_match() - Returns true if current namespace matches dev/ino provided. >> + * @ns_common: current ns >> + * @dev: dev_t from nsfs that will be matched against current nsfs >> + * @ino: ino_t from nsfs that will be matched against current nsfs >> + * >> + * Return: true if dev and ino matches the current nsfs. >> + */ >> +bool ns_match(const struct ns_common *ns, dev_t dev, ino_t ino) >> +{ >> + return (ns->inum == ino) && (nsfs_mnt->mnt_sb->s_dev == dev); >> +} >> + >> + >> static int nsfs_show_path(struct seq_file *seq, struct dentry *dentry) >> { >> struct inode *inode = d_inode(dentry); >> diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h >> index d31cb6215905..1da9f33489f3 100644 >> --- a/include/linux/proc_ns.h >> +++ b/include/linux/proc_ns.h >> @@ -82,6 +82,8 @@ typedef struct ns_common *ns_get_path_helper_t(void *); >> extern void *ns_get_path_cb(struct path *path, ns_get_path_helper_t ns_get_cb, >> void *private_data); >> >> +extern bool ns_match(const struct ns_common *ns, dev_t dev, ino_t ino); >> + >> extern int ns_get_name(char *buf, size_t size, struct task_struct *task, >> const struct proc_ns_operations *ns_ops); >> extern void nsfs_init(void); >>
Eric, In case that you missed the email, I added "[Review Request]" and pinged again. It would be good if you can take a look and ack if it looks good to you. Thanks! On 10/28/19 8:34 AM, Yonghong Song wrote: > Ping again. > > Eric, could you take a look at this patch and ack it if it is okay? > > Thanks! > > > On 10/22/19 8:05 PM, Yonghong Song wrote: >> >> Hi, Eric, >> >> Could you take a look at this patch the series as well? >> If it looks good, could you ack the patch #1? >> >> Thanks! >> >> On 10/22/19 12:17 PM, Carlos Neira wrote: >>> ns_match returns true if the namespace inode and dev_t matches the ones >>> provided by the caller. >>> >>> Signed-off-by: Carlos Neira <cneirabustos@gmail.com> >>> --- >>> fs/nsfs.c | 14 ++++++++++++++ >>> include/linux/proc_ns.h | 2 ++ >>> 2 files changed, 16 insertions(+) >>> >>> diff --git a/fs/nsfs.c b/fs/nsfs.c >>> index a0431642c6b5..ef59cf347285 100644 >>> --- a/fs/nsfs.c >>> +++ b/fs/nsfs.c >>> @@ -245,6 +245,20 @@ struct file *proc_ns_fget(int fd) >>> return ERR_PTR(-EINVAL); >>> } >>> >>> +/** >>> + * ns_match() - Returns true if current namespace matches dev/ino provided. >>> + * @ns_common: current ns >>> + * @dev: dev_t from nsfs that will be matched against current nsfs >>> + * @ino: ino_t from nsfs that will be matched against current nsfs >>> + * >>> + * Return: true if dev and ino matches the current nsfs. >>> + */ >>> +bool ns_match(const struct ns_common *ns, dev_t dev, ino_t ino) >>> +{ >>> + return (ns->inum == ino) && (nsfs_mnt->mnt_sb->s_dev == dev); >>> +} >>> + >>> + >>> static int nsfs_show_path(struct seq_file *seq, struct dentry *dentry) >>> { >>> struct inode *inode = d_inode(dentry); >>> diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h >>> index d31cb6215905..1da9f33489f3 100644 >>> --- a/include/linux/proc_ns.h >>> +++ b/include/linux/proc_ns.h >>> @@ -82,6 +82,8 @@ typedef struct ns_common *ns_get_path_helper_t(void *); >>> extern void *ns_get_path_cb(struct path *path, ns_get_path_helper_t ns_get_cb, >>> void *private_data); >>> >>> +extern bool ns_match(const struct ns_common *ns, dev_t dev, ino_t ino); >>> + >>> extern int ns_get_name(char *buf, size_t size, struct task_struct *task, >>> const struct proc_ns_operations *ns_ops); >>> extern void nsfs_init(void); >>>
Eric, ping again. Any comment on this patch? On 10/31/19 3:31 PM, Yonghong Song wrote: > > Eric, > > In case that you missed the email, I added "[Review Request]" > and pinged again. It would be good if you can take a look > and ack if it looks good to you. > > Thanks! > > > On 10/28/19 8:34 AM, Yonghong Song wrote: >> Ping again. >> >> Eric, could you take a look at this patch and ack it if it is okay? >> >> Thanks! >> >> >> On 10/22/19 8:05 PM, Yonghong Song wrote: >>> >>> Hi, Eric, >>> >>> Could you take a look at this patch the series as well? >>> If it looks good, could you ack the patch #1? >>> >>> Thanks! >>> >>> On 10/22/19 12:17 PM, Carlos Neira wrote: >>>> ns_match returns true if the namespace inode and dev_t matches the ones >>>> provided by the caller. >>>> >>>> Signed-off-by: Carlos Neira <cneirabustos@gmail.com> >>>> --- >>>> fs/nsfs.c | 14 ++++++++++++++ >>>> include/linux/proc_ns.h | 2 ++ >>>> 2 files changed, 16 insertions(+) >>>> >>>> diff --git a/fs/nsfs.c b/fs/nsfs.c >>>> index a0431642c6b5..ef59cf347285 100644 >>>> --- a/fs/nsfs.c >>>> +++ b/fs/nsfs.c >>>> @@ -245,6 +245,20 @@ struct file *proc_ns_fget(int fd) >>>> return ERR_PTR(-EINVAL); >>>> } >>>> +/** >>>> + * ns_match() - Returns true if current namespace matches dev/ino >>>> provided. >>>> + * @ns_common: current ns >>>> + * @dev: dev_t from nsfs that will be matched against current nsfs >>>> + * @ino: ino_t from nsfs that will be matched against current nsfs >>>> + * >>>> + * Return: true if dev and ino matches the current nsfs. >>>> + */ >>>> +bool ns_match(const struct ns_common *ns, dev_t dev, ino_t ino) >>>> +{ >>>> + return (ns->inum == ino) && (nsfs_mnt->mnt_sb->s_dev == dev); >>>> +} >>>> + >>>> + >>>> static int nsfs_show_path(struct seq_file *seq, struct dentry >>>> *dentry) >>>> { >>>> struct inode *inode = d_inode(dentry); >>>> diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h >>>> index d31cb6215905..1da9f33489f3 100644 >>>> --- a/include/linux/proc_ns.h >>>> +++ b/include/linux/proc_ns.h >>>> @@ -82,6 +82,8 @@ typedef struct ns_common >>>> *ns_get_path_helper_t(void *); >>>> extern void *ns_get_path_cb(struct path *path, >>>> ns_get_path_helper_t ns_get_cb, >>>> void *private_data); >>>> +extern bool ns_match(const struct ns_common *ns, dev_t dev, ino_t >>>> ino); >>>> + >>>> extern int ns_get_name(char *buf, size_t size, struct >>>> task_struct *task, >>>> const struct proc_ns_operations *ns_ops); >>>> extern void nsfs_init(void); >>>>
Yonghong, I think the merge window has closed, should I resubmit these patches, or wait for Eric's feedback ? Bests On Tue, Nov 12, 2019 at 03:18:20PM +0000, Yonghong Song wrote: > Eric, > > ping again. Any comment on this patch? > > On 10/31/19 3:31 PM, Yonghong Song wrote: > > > > Eric, > > > > In case that you missed the email, I added "[Review Request]" > > and pinged again. It would be good if you can take a look > > and ack if it looks good to you. > > > > Thanks! > > > > > > On 10/28/19 8:34 AM, Yonghong Song wrote: > >> Ping again. > >> > >> Eric, could you take a look at this patch and ack it if it is okay? > >> > >> Thanks! > >> > >> > >> On 10/22/19 8:05 PM, Yonghong Song wrote: > >>> > >>> Hi, Eric, > >>> > >>> Could you take a look at this patch the series as well? > >>> If it looks good, could you ack the patch #1? > >>> > >>> Thanks! > >>> > >>> On 10/22/19 12:17 PM, Carlos Neira wrote: > >>>> ns_match returns true if the namespace inode and dev_t matches the ones > >>>> provided by the caller. > >>>> > >>>> Signed-off-by: Carlos Neira <cneirabustos@gmail.com> > >>>> --- > >>>> fs/nsfs.c | 14 ++++++++++++++ > >>>> include/linux/proc_ns.h | 2 ++ > >>>> 2 files changed, 16 insertions(+) > >>>> > >>>> diff --git a/fs/nsfs.c b/fs/nsfs.c > >>>> index a0431642c6b5..ef59cf347285 100644 > >>>> --- a/fs/nsfs.c > >>>> +++ b/fs/nsfs.c > >>>> @@ -245,6 +245,20 @@ struct file *proc_ns_fget(int fd) > >>>> return ERR_PTR(-EINVAL); > >>>> } > >>>> +/** > >>>> + * ns_match() - Returns true if current namespace matches dev/ino > >>>> provided. > >>>> + * @ns_common: current ns > >>>> + * @dev: dev_t from nsfs that will be matched against current nsfs > >>>> + * @ino: ino_t from nsfs that will be matched against current nsfs > >>>> + * > >>>> + * Return: true if dev and ino matches the current nsfs. > >>>> + */ > >>>> +bool ns_match(const struct ns_common *ns, dev_t dev, ino_t ino) > >>>> +{ > >>>> + return (ns->inum == ino) && (nsfs_mnt->mnt_sb->s_dev == dev); > >>>> +} > >>>> + > >>>> + > >>>> static int nsfs_show_path(struct seq_file *seq, struct dentry > >>>> *dentry) > >>>> { > >>>> struct inode *inode = d_inode(dentry); > >>>> diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h > >>>> index d31cb6215905..1da9f33489f3 100644 > >>>> --- a/include/linux/proc_ns.h > >>>> +++ b/include/linux/proc_ns.h > >>>> @@ -82,6 +82,8 @@ typedef struct ns_common > >>>> *ns_get_path_helper_t(void *); > >>>> extern void *ns_get_path_cb(struct path *path, > >>>> ns_get_path_helper_t ns_get_cb, > >>>> void *private_data); > >>>> +extern bool ns_match(const struct ns_common *ns, dev_t dev, ino_t > >>>> ino); > >>>> + > >>>> extern int ns_get_name(char *buf, size_t size, struct > >>>> task_struct *task, > >>>> const struct proc_ns_operations *ns_ops); > >>>> extern void nsfs_init(void); > >>>>
diff --git a/fs/nsfs.c b/fs/nsfs.c index a0431642c6b5..ef59cf347285 100644 --- a/fs/nsfs.c +++ b/fs/nsfs.c @@ -245,6 +245,20 @@ struct file *proc_ns_fget(int fd) return ERR_PTR(-EINVAL); } +/** + * ns_match() - Returns true if current namespace matches dev/ino provided. + * @ns_common: current ns + * @dev: dev_t from nsfs that will be matched against current nsfs + * @ino: ino_t from nsfs that will be matched against current nsfs + * + * Return: true if dev and ino matches the current nsfs. + */ +bool ns_match(const struct ns_common *ns, dev_t dev, ino_t ino) +{ + return (ns->inum == ino) && (nsfs_mnt->mnt_sb->s_dev == dev); +} + + static int nsfs_show_path(struct seq_file *seq, struct dentry *dentry) { struct inode *inode = d_inode(dentry); diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h index d31cb6215905..1da9f33489f3 100644 --- a/include/linux/proc_ns.h +++ b/include/linux/proc_ns.h @@ -82,6 +82,8 @@ typedef struct ns_common *ns_get_path_helper_t(void *); extern void *ns_get_path_cb(struct path *path, ns_get_path_helper_t ns_get_cb, void *private_data); +extern bool ns_match(const struct ns_common *ns, dev_t dev, ino_t ino); + extern int ns_get_name(char *buf, size_t size, struct task_struct *task, const struct proc_ns_operations *ns_ops); extern void nsfs_init(void);
ns_match returns true if the namespace inode and dev_t matches the ones provided by the caller. Signed-off-by: Carlos Neira <cneirabustos@gmail.com> --- fs/nsfs.c | 14 ++++++++++++++ include/linux/proc_ns.h | 2 ++ 2 files changed, 16 insertions(+)