Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 752c58a4 authored by Dmitry Torokhov's avatar Dmitry Torokhov
Browse files
parents e52b29c2 10b1fbdb
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ Description:
		these states.

What:		/sys/power/disk
Date:		August 2006
Date:		September 2006
Contact:	Rafael J. Wysocki <rjw@sisk.pl>
Description:
		The /sys/power/disk file controls the operating mode of the
@@ -39,6 +39,19 @@ Description:
		'reboot' - the memory image will be saved by the kernel and
		the system will be rebooted.

		Additionally, /sys/power/disk can be used to turn on one of the
		two testing modes of the suspend-to-disk mechanism: 'testproc'
		or 'test'.  If the suspend-to-disk mechanism is in the
		'testproc' mode, writing 'disk' to /sys/power/state will cause
		the kernel to disable nonboot CPUs and freeze tasks, wait for 5
		seconds, unfreeze tasks and enable nonboot CPUs.  If it is in
		the 'test' mode, writing 'disk' to /sys/power/state will cause
		the kernel to disable nonboot CPUs and freeze tasks, shrink
		memory, suspend devices, wait for 5 seconds, resume devices,
		unfreeze tasks and enable nonboot CPUs.  Then, we are able to
		look in the log messages and work out, for example, which code
		is being slow and which device drivers are misbehaving.

		The suspend-to-disk method may be chosen by writing to this
		file one of the accepted strings:

@@ -46,6 +59,8 @@ Description:
		'platform'
		'shutdown'
		'reboot'
		'testproc'
		'test'

		It will only change to 'firmware' or 'platform' if the system
		supports that.
+1 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@
DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \
	    kernel-hacking.xml kernel-locking.xml deviceiobook.xml \
	    procfs-guide.xml writing_usb_driver.xml \
	    kernel-api.xml journal-api.xml lsm.xml usb.xml \
	    kernel-api.xml filesystems.xml lsm.xml usb.xml \
	    gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
	    genericirq.xml

+160 −92
Original line number Diff line number Diff line
@@ -2,37 +2,9 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>

<book id="LinuxJBDAPI">
<book id="Linux-filesystems-API">
 <bookinfo>
  <title>The Linux Journalling API</title>
  <authorgroup>
  <author>
     <firstname>Roger</firstname>
     <surname>Gammans</surname>
     <affiliation>
     <address>
      <email>rgammans@computer-surgery.co.uk</email>
     </address>
    </affiliation>
     </author> 
  </authorgroup>
  
  <authorgroup>
   <author>
    <firstname>Stephen</firstname>
    <surname>Tweedie</surname>
    <affiliation>
     <address>
      <email>sct@redhat.com</email>
     </address>
    </affiliation>
   </author>
  </authorgroup>

  <copyright>
   <year>2002</year>
   <holder>Roger Gammans</holder>
  </copyright>
  <title>Linux Filesystems API</title>

  <legalnotice>
   <para>
@@ -66,9 +38,105 @@

<toc></toc>

  <chapter id="Overview">
     <title>Overview</title>
  <chapter id="vfs">
     <title>The Linux VFS</title>
     <sect1><title>The Filesystem types</title>
!Iinclude/linux/fs.h
     </sect1>
     <sect1><title>The Directory Cache</title>
!Efs/dcache.c
!Iinclude/linux/dcache.h
     </sect1>
     <sect1><title>Inode Handling</title>
!Efs/inode.c
!Efs/bad_inode.c
     </sect1>
     <sect1><title>Registration and Superblocks</title>
!Efs/super.c
     </sect1>
     <sect1><title>File Locks</title>
!Efs/locks.c
!Ifs/locks.c
     </sect1>
     <sect1><title>Other Functions</title>
!Efs/mpage.c
!Efs/namei.c
!Efs/buffer.c
!Efs/bio.c
!Efs/seq_file.c
!Efs/filesystems.c
!Efs/fs-writeback.c
!Efs/block_dev.c
     </sect1>
  </chapter>

  <chapter id="proc">
     <title>The proc filesystem</title>

     <sect1><title>sysctl interface</title>
!Ekernel/sysctl.c
     </sect1>

     <sect1><title>proc filesystem interface</title>
!Ifs/proc/base.c
     </sect1>
  </chapter>

  <chapter id="sysfs">
     <title>The Filesystem for Exporting Kernel Objects</title>
!Efs/sysfs/file.c
!Efs/sysfs/symlink.c
!Efs/sysfs/bin.c
  </chapter>

  <chapter id="debugfs">
     <title>The debugfs filesystem</title>

     <sect1><title>debugfs interface</title>
!Efs/debugfs/inode.c
!Efs/debugfs/file.c
     </sect1>
  </chapter>

  <chapter id="LinuxJDBAPI">
  <chapterinfo>
  <title>The Linux Journalling API</title>

  <authorgroup>
  <author>
     <firstname>Roger</firstname>
     <surname>Gammans</surname>
     <affiliation>
     <address>
      <email>rgammans@computer-surgery.co.uk</email>
     </address>
    </affiliation>
     </author>
  </authorgroup>

  <authorgroup>
   <author>
    <firstname>Stephen</firstname>
    <surname>Tweedie</surname>
    <affiliation>
     <address>
      <email>sct@redhat.com</email>
     </address>
    </affiliation>
   </author>
  </authorgroup>

  <copyright>
   <year>2002</year>
   <holder>Roger Gammans</holder>
  </copyright>
  </chapterinfo>

  <title>The Linux Journalling API</title>

    <sect1>
     <title>Overview</title>
    <sect2>
     <title>Details</title>
<para>
The journalling layer is  easy to use. You need to
@@ -111,7 +179,6 @@ Now you can go ahead and start modifying the underlying
filesystem. Almost.
</para>


<para>

You still need to actually journal your filesystem changes, this
@@ -156,7 +223,6 @@ Then at umount time , in your put_super() (2.4) or write_super() (2.5)
you can then call journal_destroy() to clean up your in-core journal object.
</para>


<para>
Unfortunately there a couple of ways the journal layer can cause a deadlock.
The first thing to note is that each task can only have
@@ -239,9 +305,9 @@ this would be useful if you needed to know when data was committed to a
particular inode.
</para>

</sect1>
    </sect2>

<sect1>
    <sect2>
     <title>Summary</title>
<para>
Using the journal is a matter of wrapping the different context changes,
@@ -279,11 +345,11 @@ an example.
   }
   journal_destroy(my_jrnl);
</programlisting>
</sect1>
    </sect2>

</chapter>
    </sect1>

  <chapter id="adt">
    <sect1>
     <title>Data Types</title>
     <para>
	The journalling layer uses typedefs to 'hide' the concrete definitions
@@ -292,27 +358,27 @@ an example.

	Obviously the hiding is not enforced as this is 'C'.
     </para>
	<sect1><title>Structures</title>
	<sect2><title>Structures</title>
!Iinclude/linux/jbd.h
	</sect2>
    </sect1>
</chapter>

  <chapter id="calls">
    <sect1>
     <title>Functions</title>
     <para>
	The functions here are split into two groups those that
	affect a journal as a whole, and those which are used to
	manage transactions
     </para>
	<sect1><title>Journal Level</title>
	<sect2><title>Journal Level</title>
!Efs/jbd/journal.c
!Ifs/jbd/recovery.c
	</sect1>
	<sect1><title>Transasction Level</title>
	</sect2>
	<sect2><title>Transasction Level</title>
!Efs/jbd/transaction.c
	</sect2>
    </sect1>
</chapter>
<chapter>
    <sect1>
     <title>See also</title>
	<para>
	  <citation>
@@ -328,6 +394,8 @@ an example.
	   </ulink>
	   </citation>
	</para>
    </sect1>

  </chapter>

</book>
+0 −60
Original line number Diff line number Diff line
@@ -182,66 +182,6 @@ X!Ilib/string.c
     </sect1>
  </chapter>

  <chapter id="vfs">
     <title>The Linux VFS</title>
     <sect1><title>The Filesystem types</title>
!Iinclude/linux/fs.h
     </sect1>
     <sect1><title>The Directory Cache</title>
!Efs/dcache.c
!Iinclude/linux/dcache.h
     </sect1>
     <sect1><title>Inode Handling</title>
!Efs/inode.c
!Efs/bad_inode.c
     </sect1>
     <sect1><title>Registration and Superblocks</title>
!Efs/super.c
     </sect1>
     <sect1><title>File Locks</title>
!Efs/locks.c
!Ifs/locks.c
     </sect1>
     <sect1><title>Other Functions</title>
!Efs/mpage.c
!Efs/namei.c
!Efs/buffer.c
!Efs/bio.c
!Efs/seq_file.c
!Efs/filesystems.c
!Efs/fs-writeback.c
!Efs/block_dev.c
     </sect1>
  </chapter>

  <chapter id="proc">
     <title>The proc filesystem</title>
 
     <sect1><title>sysctl interface</title>
!Ekernel/sysctl.c
     </sect1>

     <sect1><title>proc filesystem interface</title>
!Ifs/proc/base.c
     </sect1>
  </chapter>

  <chapter id="sysfs">
     <title>The Filesystem for Exporting Kernel Objects</title>
!Efs/sysfs/file.c
!Efs/sysfs/symlink.c
!Efs/sysfs/bin.c
  </chapter>

  <chapter id="debugfs">
     <title>The debugfs filesystem</title>
 
     <sect1><title>debugfs interface</title>
!Efs/debugfs/inode.c
!Efs/debugfs/file.c
     </sect1>
  </chapter>

  <chapter id="relayfs">
     <title>relay interface support</title>

+20 −0
Original line number Diff line number Diff line
@@ -395,6 +395,26 @@ bugme-janitor mailing list (every change in the bugzilla is mailed here)



Managing bug reports
--------------------

One of the best ways to put into practice your hacking skills is by fixing
bugs reported by other people. Not only you will help to make the kernel
more stable, you'll learn to fix real world problems and you will improve
your skills, and other developers will be aware of your presence. Fixing
bugs is one of the best ways to get merits among other developers, because
not many people like wasting time fixing other people's bugs.

To work in the already reported bug reports, go to http://bugzilla.kernel.org.
If you want to be advised of the future bug reports, you can subscribe to the
bugme-new mailing list (only new bug reports are mailed here) or to the
bugme-janitor mailing list (every change in the bugzilla is mailed here)

	http://lists.osdl.org/mailman/listinfo/bugme-new
	http://lists.osdl.org/mailman/listinfo/bugme-janitors



Mailing lists
-------------

Loading