[PATCH 9/9] fs: Add pstore filesystem

Markus Pargmann mpa at pengutronix.de
Fri Dec 4 05:10:48 PST 2015


Hi,

On Wednesday 02 December 2015 21:37:13 Antony Pavlov wrote:
> 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/
> 
> ?

Yes, changed it so that this Makefile uses the config symbol and
pstore/Makefile is unconditional then.

Best Regards,

Markus

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

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.infradead.org/pipermail/barebox/attachments/20151204/278fd23e/attachment.sig>


More information about the barebox mailing list