<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.lustre.org/index.php?action=history&amp;feed=atom&amp;title=Applying_Lustre_Patches_to_a_Kernel</id>
	<title>Applying Lustre Patches to a Kernel - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.lustre.org/index.php?action=history&amp;feed=atom&amp;title=Applying_Lustre_Patches_to_a_Kernel"/>
	<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Applying_Lustre_Patches_to_a_Kernel&amp;action=history"/>
	<updated>2026-08-11T20:57:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=Applying_Lustre_Patches_to_a_Kernel&amp;diff=1826&amp;oldid=prev</id>
		<title>KenRawlings: Initial creation as part of accelerated wiki migration</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Applying_Lustre_Patches_to_a_Kernel&amp;diff=1826&amp;oldid=prev"/>
		<updated>2016-08-10T15:33:40Z</updated>

		<summary type="html">&lt;p&gt;Initial creation as part of accelerated wiki migration&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| class=&amp;#039;wikitable&amp;#039;&lt;br /&gt;
|- &lt;br /&gt;
!Note: This page originated on the old Lustre wiki. It was identified as likely having value and was migrated to the new wiki. It is in the process of being reviewed/updated and may currently have content that is out of date.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;#039;&amp;#039;(Updated: Jan 2010)&amp;#039;&amp;#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;NOTICE:&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  The transition from CVS to Git took place on Monday, December 14.  For more information about the transition, see the [[Git Transition Notice]]. For details about how to migrate to Git, see [[Migrating to Git]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
__TOC__&lt;br /&gt;
This page describes how to apply Lustre™ kernel patches to a tree, how to use &amp;#039;&amp;#039;Quilt&amp;#039;&amp;#039; (a package provided with most Linux distributions) to manage changes to patches, and how to modify an existing kernel patch or contribute a new kernel patch. &lt;br /&gt;
&lt;br /&gt;
== Overview of Lustre Patches ==&lt;br /&gt;
To support Lustre development and functionality, some changes must be made to the core Linux kernel. These changes are organized in a set of kernel patches kept in the Lustre repository in the directory &amp;#039;&amp;#039;lustre/kernel_patches/patches/&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
For a given Linux distribution, such as RHEL5 or SLES10, the&lt;br /&gt;
corresponding kernel karget file specifies details about the kernel for&lt;br /&gt;
which Lustre is being built.  These kernel target definitions are&lt;br /&gt;
updated by the Lustre Engineering team whenever the supported kernel&lt;br /&gt;
version changes.&lt;br /&gt;
&lt;br /&gt;
For example, the file &amp;#039;&amp;#039;lustre/kernel_patches/targets/2.6-rhel5.target.in&amp;#039;&amp;#039; contains&lt;br /&gt;
the following information:&lt;br /&gt;
* Currently-supported kernel version (e.g., 2.6.18-128.7.1.el5)&lt;br /&gt;
* Supported build architectures (e.g., i686, x86_64, ia64)&lt;br /&gt;
* Name of the correct kernel patch series (e.g., 2.6-rhel5)&lt;br /&gt;
* Version of OFED that will be used to build Infiniband drivers&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;vanilla&amp;#039;&amp;#039; target is special in that it does not correspond to any&lt;br /&gt;
specific Linux distribution.  The target describes the latest unmodified&lt;br /&gt;
kernel.org kernel which has been tested to work with this version of&lt;br /&gt;
Lustre.&lt;br /&gt;
&lt;br /&gt;
The patches to be applied depend on the kernel that is to be used. A series file is created in &amp;#039;&amp;#039;lustre/kernel_patches/series/&amp;#039;&amp;#039; for each supported kernel to define and control the patches to be used for that kernel.&lt;br /&gt;
&lt;br /&gt;
For example, the file &amp;#039;&amp;#039;lustre/kernel_patches/series/2.6-rhel5.series&amp;#039;&amp;#039; lists all the patches that must be applied to a Red Hat 2.6.18 kernel to build a Lustre compatible kernel. An excerpt from the current &amp;#039;&amp;#039;2.6-rhel5.series&amp;#039;&amp;#039; is shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lustre_version.patch&lt;br /&gt;
vfs_races-2.6-rhel5.patch&lt;br /&gt;
i_filter_data.patch&lt;br /&gt;
jbd-jcberr-2.6.18-vanilla.patch&lt;br /&gt;
export_symbols-2.6.18-vanilla.patch&lt;br /&gt;
...&lt;br /&gt;
quota-large-limits-rhel5.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; For more information about the set of patches developed to address issues with RAID-5 that are included in the 2.6-rhel5.series file, see [[RAID5 Patches]].&lt;br /&gt;
&lt;br /&gt;
== Introduction to the Quilt package ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;Quilt&amp;#039;&amp;#039; package can be used to manage many patches on a single source tree. You will need &amp;#039;&amp;#039;Quilt&amp;#039;&amp;#039; to apply and manage Lustre kernel patches. A general overview of how this works is as follows:&lt;br /&gt;
&lt;br /&gt;
* A series file lists an ordered collection of patches.&lt;br /&gt;
* The patches in the series form a stack.&lt;br /&gt;
* Quilt can be used to push and pop the patches.&lt;br /&gt;
* When the stack is managed with Quilt, patches can be edited and refreshed (updated).&lt;br /&gt;
* Inadvertent changes can be reverted and patches forked or cloned. Diffs allow before and after change comparisons.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Quilt&amp;#039;&amp;#039; is included in most Linux distributions and can be installed using a package management utility such as yum or apt-get. It can also be downloaded from the [http://savannah.nongnu.org/projects/quilt Quilt Project Site].&lt;br /&gt;
&lt;br /&gt;
== Applying Lustre Kernel Patches to a Tree ==&lt;br /&gt;
&lt;br /&gt;
After you have checked out Lustre source code (see [[Accessing Lustre Code]]) and run the &amp;#039;&amp;#039;autogen&amp;#039;&amp;#039; script (see [[Building Lustre Code|Building Lustre Code]]), follow these steps to apply the appropriate Lustre kernel patches to your tree.&lt;br /&gt;
&lt;br /&gt;
==== Preparing to apply patches ====&lt;br /&gt;
&lt;br /&gt;
1. &amp;#039;&amp;#039;Select a series file.&amp;#039;&amp;#039; First, choose the correct kernel target (see [[#Overview of Lustre Patches|Overview of Lustre Patches]]) for your distribution and then determine the corresponding series file. &lt;br /&gt;
&lt;br /&gt;
2. &amp;#039;&amp;#039;Unpack a kernel source tree&amp;#039;&amp;#039; (supported kernel sources can be found at http://downloads.lustre.org/public/kernels/). For example, enter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar -xf linux-2.6.18-128.1.1-el5.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The resulting source tree, referred to as the &amp;quot;destination tree&amp;quot; may be located in, for example, &amp;#039;&amp;#039;/tmp/kernels/linux-2.6.18-128.1.1&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
3. &amp;#039;&amp;#039;Choose a&amp;#039;&amp;#039; .config file &amp;#039;&amp;#039;from the directory&amp;#039;&amp;#039; lustre/kernel_patches/kernel_configs&amp;#039;&amp;#039;.&amp;#039;&amp;#039; Each &amp;#039;&amp;#039;.config&amp;#039;&amp;#039; file corresponds to a supported kernel and contains the supported kernel build configuration for that kernel.  &lt;br /&gt;
&lt;br /&gt;
4. &amp;#039;&amp;#039;Copy the selected kernel config to the root of the kernel source tree&amp;#039;&amp;#039;, ensuring that the final file name is &amp;#039;&amp;#039;.config&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp&lt;br /&gt;
lustre/kernel_patches/kernel_configs/kernel-2.6.18-2.6-rhel5-x86_64-smp.config /tmp/kernels/linux-2.6.18-128.1.1/.config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Applying the patches ====&lt;br /&gt;
&lt;br /&gt;
You will need &amp;#039;&amp;#039;Quilt&amp;#039;&amp;#039; to setup the series to use for your kernel. Complete the steps below:&lt;br /&gt;
&lt;br /&gt;
1. &amp;#039;&amp;#039;Add two symbolic links (symlinks) to your linux source tree.&amp;#039;&amp;#039; In this example, you will add:&lt;br /&gt;
&lt;br /&gt;
:* symlink  series -&amp;gt; ../lustre/kernel_patches/series/2.6-rhel5.series&lt;br /&gt;
:* symlink  patches -&amp;gt; ../lustre/kernel_patches/patches&lt;br /&gt;
&lt;br /&gt;
To add the symlinks, enter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /usr/src/linux-2.6.18-128.1.1&lt;br /&gt;
# ln -s ../lustre/kernel_patches/series/2.6-rhel5.series series&lt;br /&gt;
# ln -s ../lustre/kernel_patches/patches patches&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. &amp;#039;&amp;#039;Apply the patches to the kernel source tree.&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /usr/src/linux-2.6.18-128.1.1&lt;br /&gt;
# quilt push -av&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The patched Linux source tree is now suitable for use during the Lustre server build process.&lt;br /&gt;
&lt;br /&gt;
==== Building and installing a patched kernel ====&lt;br /&gt;
&lt;br /&gt;
After successfully applying the Lustre kernel patches, you will need to build a new kernel in order to proceed with the Lustre build process.  The new kernel must be installed and running before any Lustre server components can be used.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; The kernel patch, build, and install process does not need to be&lt;br /&gt;
repeated unless the Lustre kernel patch set changes.&lt;br /&gt;
&lt;br /&gt;
1. &amp;#039;&amp;#039;To build the new kernel, enter&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /usr/src/linux-2.6.18-128.1.1&lt;br /&gt;
# make oldconfig&lt;br /&gt;
# make bzImage&lt;br /&gt;
# make modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Completing these steps will result in a new Linux kernel (&amp;#039;&amp;#039;vmlinuz&amp;#039;&amp;#039;) and its&lt;br /&gt;
associated modules.  &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; Installation of the new kernel is beyond the scope of this document; please consult your distribution vendor&amp;#039;s documentation for details.&lt;br /&gt;
&lt;br /&gt;
== Lustre Kernel Patch Development ==&lt;br /&gt;
&lt;br /&gt;
If you are going to be modifying existing kernel patches or contributing new kernel patches, follow the procedures in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; If you plan to submit your modifications to Lustre Engineering for&lt;br /&gt;
possible inclusion in future product releases, please be sure to follow&lt;br /&gt;
the procedures described below.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; As a general guideline, limit the scope of changes in a patch file to a group of related changes.&lt;br /&gt;
&lt;br /&gt;
=== Directory Layout ===&lt;br /&gt;
&lt;br /&gt;
Patches are stored in the Lustre directory tree as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;patches/&amp;#039;&amp;#039; - Contains all the patch files. Each patch should correspond to a single functional change.&lt;br /&gt;
* &amp;#039;&amp;#039;series/&amp;#039;&amp;#039; - The text files that &amp;#039;&amp;#039;patch-utils&amp;#039;&amp;#039; use to define the order that patches are applied to a tree. A series file exists for each distinctive variant of a kernel tree (corresponding to the source, such as kernel.org or Red Hat).&lt;br /&gt;
&lt;br /&gt;
=== Naming completed patches ===&lt;br /&gt;
When naming patches, follow these guidelines :&lt;br /&gt;
* Use the format &amp;lt;patchname&amp;gt;&amp;lt;kernel-version&amp;gt;&amp;#039;&amp;#039;.patch&amp;#039;&amp;#039; (for example, &amp;#039;&amp;#039;vfs_intent-2.4.20-rh.patch&amp;#039;&amp;#039;). Patches are stored in &amp;#039;&amp;#039;lustre/kernel_patches/patches&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
When updating patches, follow these guidelines:&lt;br /&gt;
* Keep new versions of the patches as similar to the old ones as possible, so that &amp;#039;&amp;#039;git diff&amp;#039;&amp;#039; will clearly show the changes that have been made to the patch.  &lt;br /&gt;
* Keep the different versions of each patch as close as possible so that  &amp;#039;&amp;#039;diff -u foo-rhel4.patch foo-sles10.patch&amp;#039;&amp;#039; will show as small a diff as possible and we can verify that each of the patches contains the fixes that have been applied to the others.&lt;br /&gt;
&lt;br /&gt;
To make this easier, options can be passed to &amp;#039;&amp;#039;quilt&amp;#039;&amp;#039; via &amp;#039;&amp;#039;$HOME/.quiltrc&amp;#039;&amp;#039; (copied from &amp;#039;&amp;#039;build/quiltrc&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
 export QUILT_DIFF_OPTS=&amp;quot;-upa&amp;quot;&lt;br /&gt;
 export QUILT_NO_DIFF_TIMESTAMPS=1&lt;br /&gt;
&lt;br /&gt;
=== Maintaining series files ===&lt;br /&gt;
The following conventions apply to series files:&lt;br /&gt;
&lt;br /&gt;
* A series file lists patches that are part of the series.&lt;br /&gt;
* By convention, a series file supports &amp;#039;&amp;#039;one&amp;#039;&amp;#039; kernel, not two or more kernels.&lt;br /&gt;
* When possible, patches should be applicable to multiple kernels to minimize the total number of series-specific patches.&lt;br /&gt;
&lt;br /&gt;
=== Fixing a bug involving a kernel patch ===&lt;br /&gt;
&lt;br /&gt;
The following example illustrates how to fix a bug that involves a kernel patch. In this example, the solution to the bug requires a change to a patch that affects &amp;#039;&amp;#039;fs/ext3/iopen.c&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Complete these steps:  &lt;br /&gt;
&lt;br /&gt;
1. Check the series file to find the name of the patch, in this case, &amp;#039;&amp;#039;iopen-2.6-rhel5&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
2. Pop to the patch by entering:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quilt pop iopen-2.6-rhel5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Make the fix.&lt;br /&gt;
&lt;br /&gt;
4. Update the patch in the lustre source by entering (where -o starts a new session):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quilt refresh -o&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Show the changes to fix the bug that were made in this session by entering:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quilt gendiff &amp;gt; developers-fix.diff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Put the other patches back by entering:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quilt push -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Test the code. See [[Testing Lustre Code]] for details. &lt;br /&gt;
&lt;br /&gt;
8. When you have built and tested your changes by running the &amp;#039;&amp;#039;acceptance-small&amp;#039;&amp;#039; test&lt;br /&gt;
suite,submit your patch for review and possible inclusion in an upcoming Lustre release. See [[Submitting Patches]] for details.&lt;br /&gt;
&lt;br /&gt;
The Lustre release engineering team will then apply &amp;#039;&amp;#039;developers-fix.diff&amp;#039;&amp;#039; to the &amp;#039;&amp;#039;iopen.c&amp;#039;&amp;#039; patches in each of the series with that patch. The QA team will then test  each of the affected the series.&lt;br /&gt;
&lt;br /&gt;
=== Upgrading a kernel ===&lt;br /&gt;
&lt;br /&gt;
To upgrade a kernel, following this procedure. In the example below, the new kernel is 2.6.25 and the patches to be applied are for 2.6.24.&lt;br /&gt;
&lt;br /&gt;
1. Start pushing patches until the patch that fails is topmost (for example, &amp;#039;&amp;#039;foo-2.6.20.patch&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
2. If it is used in another series (for example, the &amp;#039;&amp;#039;sles&amp;#039;&amp;#039; series), fork it by entering:&lt;br /&gt;
:&amp;lt;pre&amp;gt;&lt;br /&gt;
;quilt fork foo-2.6.25-rhel.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Force it in by entering:&lt;br /&gt;
:&amp;lt;pre&amp;gt;&lt;br /&gt;
;quilt push -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Fix conflicts.&lt;br /&gt;
&lt;br /&gt;
5. Update the patch in the source by entering:&lt;br /&gt;
:&amp;lt;pre&amp;gt;&lt;br /&gt;
;quilt refresh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Verify that the series file has been updated with the new patch name.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; To back out a forced patch, enter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
quilt pop -R -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Adding a new file to the kernel ===&lt;br /&gt;
To add a new file to the kernel:&lt;br /&gt;
&lt;br /&gt;
1.  To make sure the top patch is the patch you want, use &amp;#039;&amp;#039;quilt push {patch_name}&amp;#039;&amp;#039; or &amp;#039;&amp;#039;quilt pop {patch_name}&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
2. Edit the new file.&lt;br /&gt;
&lt;br /&gt;
3. To add the file to one of your patches, call &amp;#039;&amp;#039;quilt add [-p {patch_name}] {file_name}&amp;#039;&amp;#039;. (If the top patch is the patch to which you want to add your new file, you can omit the &amp;#039;&amp;#039; -p {patch_name} &amp;#039;&amp;#039; option.)&lt;br /&gt;
&lt;br /&gt;
=== Making changes in another source file ===&lt;br /&gt;
To make changes to another source file:&lt;br /&gt;
&lt;br /&gt;
1. Make sure the top patch is the patch you want using &amp;#039;&amp;#039;quilt push {patch_name}&amp;#039;&amp;#039; or &amp;#039;&amp;#039;quilt pop {patch_name}&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
2. To add that source file to the top patch, call &amp;#039;&amp;#039;quilt add {that_source_name}&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
3. Make changes in the source file.&lt;br /&gt;
&lt;br /&gt;
4. To refresh the patch, call &amp;#039;&amp;#039;quilt refresh&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Adding a patch into a series ===&lt;br /&gt;
&lt;br /&gt;
To add a patch into a series:&lt;br /&gt;
&lt;br /&gt;
1. Ideally, add the patch to the end of the series using &amp;#039;&amp;#039;quilt add&amp;#039;&amp;#039; to avoid the risk of cascading patch modifications.&lt;br /&gt;
&lt;br /&gt;
2. After the patch is imported, apply and refreshed it using &amp;#039;&amp;#039;quilt push&amp;#039;&amp;#039; and &amp;#039;&amp;#039;quilt refresh&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
3. Verify that the series file was updated.&lt;br /&gt;
&lt;br /&gt;
4. Add the patch to the repository with &amp;quot;git add&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; If you are introducing a new patch, use &amp;#039;&amp;#039;quilt new&amp;#039;&amp;#039;, then edit the patch, and then use &amp;#039;&amp;#039;quilt refresh&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>KenRawlings</name></author>
	</entry>
</feed>