[PATCH 9/9] fs: Add pstore filesystem

Antony Pavlov antonynpavlov at gmail.com
Wed Dec 2 10:37:13 PST 2015


On Wed,  2 Dec 2015 14:48:51 +0100
Markus Pargmann <mpa at pengutronix.de> wrote:

> pstore is a persistent storage filesystem used for RAMOOPS. It is used
> to store console logs, panics, ftrace and other information in case of a
> crash/panic/oops/reboot.
> 
> pstore is implemented for barebox as a read-only filesystem at the
> moment. It may be extended later on. The idea is to provide a way to
> extract essential data from the last running kernel.
> 
> Most of the code is copied from the kernel. However this is only a
> lightweight implementation without real write support yet.
> 
> Signed-off-by: Markus Pargmann <mpa at pengutronix.de>
> ---
>  common/startup.c           |   5 +
>  fs/Kconfig                 |   2 +
>  fs/Makefile                |   1 +
>  fs/pstore/Kconfig          |  88 ++++++++
>  fs/pstore/Makefile         |  10 +
>  fs/pstore/fs.c             | 280 +++++++++++++++++++++++++
>  fs/pstore/internal.h       |  19 ++
>  fs/pstore/platform.c       | 138 ++++++++++++
>  fs/pstore/ram.c            | 507 +++++++++++++++++++++++++++++++++++++++++++++
>  fs/pstore/ram_core.c       | 426 +++++++++++++++++++++++++++++++++++++
>  include/linux/pstore.h     |  90 ++++++++
>  include/linux/pstore_ram.h |  87 ++++++++
>  12 files changed, 1653 insertions(+)
>  create mode 100644 fs/pstore/Kconfig
>  create mode 100644 fs/pstore/Makefile
>  create mode 100644 fs/pstore/fs.c
>  create mode 100644 fs/pstore/internal.h
>  create mode 100644 fs/pstore/platform.c
>  create mode 100644 fs/pstore/ram.c
>  create mode 100644 fs/pstore/ram_core.c
>  create mode 100644 include/linux/pstore.h
>  create mode 100644 include/linux/pstore_ram.h
> 
> diff --git a/common/startup.c b/common/startup.c
> index 4a303b297aaf..093a23ba08c9 100644
> --- a/common/startup.c
> +++ b/common/startup.c
> @@ -60,6 +60,11 @@ static int mount_root(void)
>  		mount("none", "efivarfs", "/efivars", NULL);
>  	}
>  
> +	if (IS_ENABLED(CONFIG_FS_PSTORE)) {
> +		mkdir("/pstore", 0);
> +		mount("none", "pstore", "/pstore", NULL);
> +	}
> +
>  	return 0;
>  }
>  fs_initcall(mount_root);
> diff --git a/fs/Kconfig b/fs/Kconfig
> index 9217bc81ea1e..5413a9295ccc 100644
> --- a/fs/Kconfig
> +++ b/fs/Kconfig
> @@ -89,4 +89,6 @@ config FS_SMHFS
>  	  located on a debugging host connected to the target running
>  	  Barebox
>  
> +source fs/pstore/Kconfig
> +
>  endmenu
> diff --git a/fs/Makefile b/fs/Makefile
> index 46932057c1b7..590c068e6045 100644
> --- a/fs/Makefile
> +++ b/fs/Makefile
> @@ -14,3 +14,4 @@ obj-$(CONFIG_FS_UIMAGEFS)	+= uimagefs.o
>  obj-$(CONFIG_FS_EFI)	 += efi.o
>  obj-$(CONFIG_FS_EFIVARFS) += efivarfs.o
>  obj-$(CONFIG_FS_SMHFS) += smhfs.o
> +obj-y			+= pstore/

Can we use 

   obj-$(CONFIG_FS_PSTORE) += pstore/

?

> diff --git a/fs/pstore/Kconfig b/fs/pstore/Kconfig
> new file mode 100644
> index 000000000000..2455b5629cb1
> --- /dev/null
> +++ b/fs/pstore/Kconfig
> @@ -0,0 +1,88 @@
> +menuconfig FS_PSTORE
> +	bool
> +	prompt "pstore fs support"

-- 
Best regards,
  Antony Pavlov



More information about the barebox mailing list