diff mbox series

[v15,1/5] fs/nsfs.c: added ns_match

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

Commit Message

Carlos Antonio Neira Bustos Oct. 22, 2019, 7:17 p.m. UTC
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(+)

Comments

Yonghong Song Oct. 23, 2019, 3:05 a.m. UTC | #1
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 Song Oct. 28, 2019, 3:34 p.m. UTC | #2
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 Song Oct. 31, 2019, 10:31 p.m. UTC | #3
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 Song Nov. 12, 2019, 3:18 p.m. UTC | #4
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);
>>>>
Carlos Antonio Neira Bustos Nov. 25, 2019, 2:03 p.m. UTC | #5
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 mbox series

Patch

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);