2008-08-21 05:45:00

by Jared Hulbert

[permalink] [raw]
Subject: [PATCH 01/10] AXFS: exporting xip_file_fault() for use with AXFS

We'll need this for AXFS. The equivalent function in filemap.c is exported.

Signed-off-by: Jared Hulbert <[email protected]>
---
include/linux/mm.h | 4 ++++
mm/filemap_xip.c | 3 ++-
2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index 72a15dc..2be5c22 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -161,6 +161,10 @@ struct vm_fault {
*/
};

+#ifdef CONFIG_FS_XIP
+extern int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
+#endif
+
/*
* These are the virtual MM functions - opening of an area, closing and
* unmapping it (needed to keep files on disk up-to-date etc), pointer
diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c
index 380ab40..ab2f174 100644
--- a/mm/filemap_xip.c
+++ b/mm/filemap_xip.c
@@ -206,7 +206,7 @@ __xip_unmap (struct address_space * mapping,
*
* This function is derived from filemap_fault, but used for execute in place
*/
-static int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
{
struct file *file = vma->vm_file;
struct address_space *mapping = file->f_mapping;
@@ -262,6 +262,7 @@ found:
return 0;
}
}
+EXPORT_SYMBOL_GPL(xip_file_fault);

static struct vm_operations_struct xip_file_vm_ops = {
.fault = xip_file_fault,


2008-08-21 07:32:25

by Paulius Zaleckas

[permalink] [raw]
Subject: Re: [PATCH 01/10] AXFS: exporting xip_file_fault() for use with AXFS

Jared Hulbert wrote:
> We'll need this for AXFS. The equivalent function in filemap.c is exported.
>
> Signed-off-by: Jared Hulbert <[email protected]>
> ---
> include/linux/mm.h | 4 ++++
> mm/filemap_xip.c | 3 ++-
> 2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 72a15dc..2be5c22 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -161,6 +161,10 @@ struct vm_fault {
> */
> };
>
> +#ifdef CONFIG_FS_XIP
> +extern int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
> +#endif
> +

No need for #ifdef here as this function is compiled and exported in .c
regardless of CONFIG_FS_XIP

> /*
> * These are the virtual MM functions - opening of an area, closing and
> * unmapping it (needed to keep files on disk up-to-date etc), pointer
> diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c
> index 380ab40..ab2f174 100644
> --- a/mm/filemap_xip.c
> +++ b/mm/filemap_xip.c
> @@ -206,7 +206,7 @@ __xip_unmap (struct address_space * mapping,
> *
> * This function is derived from filemap_fault, but used for execute in place
> */
> -static int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
> +int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
> {
> struct file *file = vma->vm_file;
> struct address_space *mapping = file->f_mapping;
> @@ -262,6 +262,7 @@ found:
> return 0;
> }
> }
> +EXPORT_SYMBOL_GPL(xip_file_fault);
>
> static struct vm_operations_struct xip_file_vm_ops = {
> .fault = xip_file_fault,
>

2008-08-21 07:33:22

by Paulius Zaleckas

[permalink] [raw]
Subject: Re: [PATCH 01/10] AXFS: exporting xip_file_fault() for use with AXFS

Paulius Zaleckas wrote:
> Jared Hulbert wrote:
>> We'll need this for AXFS. The equivalent function in filemap.c is exported.
>>
>> Signed-off-by: Jared Hulbert <[email protected]>
>> ---
>> include/linux/mm.h | 4 ++++
>> mm/filemap_xip.c | 3 ++-
>> 2 files changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/linux/mm.h b/include/linux/mm.h
>> index 72a15dc..2be5c22 100644
>> --- a/include/linux/mm.h
>> +++ b/include/linux/mm.h
>> @@ -161,6 +161,10 @@ struct vm_fault {
>> */
>> };
>>
>> +#ifdef CONFIG_FS_XIP
>> +extern int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
>> +#endif
>> +
>
> No need for #ifdef here as this function is compiled and exported in .c
> regardless of CONFIG_FS_XIP

Sorry I am wrong... Have to get more sleep :)

>> /*
>> * These are the virtual MM functions - opening of an area, closing and
>> * unmapping it (needed to keep files on disk up-to-date etc), pointer
>> diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c
>> index 380ab40..ab2f174 100644
>> --- a/mm/filemap_xip.c
>> +++ b/mm/filemap_xip.c
>> @@ -206,7 +206,7 @@ __xip_unmap (struct address_space * mapping,
>> *
>> * This function is derived from filemap_fault, but used for execute in place
>> */
>> -static int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
>> +int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
>> {
>> struct file *file = vma->vm_file;
>> struct address_space *mapping = file->f_mapping;
>> @@ -262,6 +262,7 @@ found:
>> return 0;
>> }
>> }
>> +EXPORT_SYMBOL_GPL(xip_file_fault);
>>
>> static struct vm_operations_struct xip_file_vm_ops = {
>> .fault = xip_file_fault,
>>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>

2008-08-21 07:43:14

by Carsten Otte

[permalink] [raw]
Subject: Re: [PATCH 01/10] AXFS: exporting xip_file_fault() for use with AXFS

Jared Hulbert wrote:
> We'll need this for AXFS. The equivalent function in filemap.c is exported.
>
> Signed-off-by: Jared Hulbert <[email protected]>
> ---
> include/linux/mm.h | 4 ++++
> mm/filemap_xip.c | 3 ++-
> 2 files changed, 6 insertions(+), 1 deletion(-)
Acked-by: Carsten Otte <[email protected]>