[PATCH 1/2] Add gfs support (#754213)

Vratislav Podzimek vpodzime at redhat.com
Tue Jun 26 13:36:38 UTC 2012


On Tue, 2012-06-26 at 09:28 -0400, David Cantrell wrote:
> On Tue, Jun 26, 2012 at 02:11:18PM +0200, Vratislav Podzimek wrote:
> > ---
> >  fsset.py             |   30 ++++++++++++++++++++++++++++++
> >  loader2/loader.c     |    2 +-
> >  partitions.py        |    6 +++---
> >  scripts/mk-images    |    2 +-
> >  scripts/upd-instroot |    5 +++--
> >  5 files changed, 38 insertions(+), 7 deletions(-)
> > 
> > diff --git a/fsset.py b/fsset.py
> > index e157519..9636003 100644
> > --- a/fsset.py
> > +++ b/fsset.py
> > @@ -539,6 +539,36 @@ class jfsFileSystem(FileSystemType):
> >                                    
> >  fileSystemTypeRegister(jfsFileSystem())
> >  
> > +class gfsFileSystem(FileSystemType):
> > +    def __init__(self):
> > +        FileSystemType.__init__(self)
> > +        self.partedFileSystemType = None
> > +        self.formattable = 1
> > +        self.checked = 0
> > +        self.linuxnativefs = 1
> > +        if flags.cmdline.has_key("gfs"):
> > +            self.supported = -1
> > +        else:
> > +            self.supported = 0
> 
> Does support for this filesystem at install time really need to require the
> 'gfs' command line argument?
I've used the same as for the gfs2. If I understand it correctly,
self.supported is used only when creating a new filesystem.

> 
> > +        self.name = "gfs"
> > +        self.packages = [ "gfs-utils" ]
> > +
> > +        self.maxSizeMB = 8 * 1024 * 1024
> 
> We are sure this is the actual GFS limit?
Again, used the same as for the gfs2. I will try to get more info about
it.

> 
> > +    def formatDevice(self, entry, progress, chroot='/'):
> > +        devicePath = entry.device.setupDevice(chroot)
> > +        rc = iutil.execWithRedirect("/usr/sbin/mkfs.gfs",
> > +                                    ["-j", "1", "-p", "lock_nolock",
> > +                                     "-O", devicePath],
> > +                                    stdout = "/dev/tty5",
> > +                                    stderr = "/dev/tty5")
> 
> Syntax-wise, this looks fine.  But I don't know if the arguments are
> correct.  I assume you've verified that.
Yeah, verified and get the tip from the gfs-utils maintainer. They are
again the same as for the gfs2.

> 
> > +        if rc:
> > +            raise SystemError
> > +
> > +fileSystemTypeRegister(gfsFileSystem())
> > +
> >  class gfs2FileSystem(FileSystemType):
> >      def __init__(self):
> >          FileSystemType.__init__(self)
> > diff --git a/loader2/loader.c b/loader2/loader.c
> > index 84e9088..b68601a 100644
> > --- a/loader2/loader.c
> > +++ b/loader2/loader.c
> > @@ -1810,7 +1810,7 @@ int main(int argc, char ** argv) {
> >      else if (FL_UPDATES(flags))
> >          loadUpdates(&loaderData);
> >  
> > -    mlLoadModuleSet("md:raid0:raid1:raid10:raid5:raid6:raid456:dm-raid45:fat:msdos:jbd2:crc16:ext4:jbd:ext3:lock_nolock:gfs2:reiserfs:jfs:xfs:dm-mod:dm-zero:dm-mirror:dm-snapshot:dm-multipath:dm-round-robin:dm-emc:dm-crypt:dm-mem-cache:dm-region_hash:dm-message", modLoaded, modDeps, modInfo);
> > +    mlLoadModuleSet("md:raid0:raid1:raid10:raid5:raid6:raid456:dm-raid45:fat:msdos:jbd2:crc16:ext4:jbd:ext3:lock_nolock:gfs2:gfs:reiserfs:jfs:xfs:dm-mod:dm-zero:dm-mirror:dm-snapshot:dm-multipath:dm-round-robin:dm-emc:dm-crypt:dm-mem-cache:dm-region_hash:dm-message", modLoaded, modDeps, modInfo);
> >  
> >      /* crypto modules */
> >      mlLoadModuleSet("aead:aes_generic:rng:ansi_cprng:krng:anubis:crypto_blkcipher:authenc:blowfish:cast5:cast6:cbc:ccm:chainiv:crypto_hash:cryptomgr:ctr:zlib_deflate:deflate:crypto_null:des:ecb:eseqiv:gf128mul:hmac:khazad:md4:md5:michael_mic:seqiv:serpent:sha256:sha512:tea:tgr192:twofish:wp512:xcbc:xts", modLoaded, modDeps, modInfo);
> > diff --git a/partitions.py b/partitions.py
> > index 52d0b8c..208a8d5 100644
> > --- a/partitions.py
> > +++ b/partitions.py
> > @@ -1224,9 +1224,9 @@ class Partitions:
> >  
> >                  # no gfs support in grub
> >                  if (bootreq and bootreq.fstype and
> > -                    bootreq.fstype.getName() == "gfs2"):
> > -                    errors.append("Bootable partitions cannot be on a GFS2 "
> > -                                  "filesystem.")
> > +                    bootreq.fstype.getName() in ["gfs", "gfs2"]):
> > +                    errors.append("Bootable partitions cannot be on a GFS "
> > +                                  "nor a GFS2 filesystem.")
> >                      
> >                  # no ext4 support in grub
> >                  if (bootreq and bootreq.fstype and
> > diff --git a/scripts/mk-images b/scripts/mk-images
> > index ef29709..95429f5 100755
> > --- a/scripts/mk-images
> > +++ b/scripts/mk-images
> > @@ -42,7 +42,7 @@ USBMODS="ohci-hcd uhci-hcd ehci-hcd hid mousedev usb-storage sd_mod sr_mod ub"
> >  FIREWIREMODS="ieee1394 ohci1394 sbp2"
> >  IDEMODS="ide-cd ide-cs"
> >  SCSIMODS="sr_mod sg st sd_mod scsi_mod iscsi_tcp iscsi_ibft"
> > -FSMODS="fat msdos vfat ext3 ext4 reiserfs jfs xfs gfs2 lock_nolock"
> > +FSMODS="fat msdos vfat ext3 ext4 reiserfs jfs xfs gfs gfs2 lock_nolock"
> >  LVMMODS="dm-mod dm-zero dm-snapshot dm-mirror dm-multipath dm-round-robin dm-emc dm-crypt"
> >  RAIDMODS="md raid0 raid1 raid10 raid5 raid6 raid456 dm-raid45 dm-mem-cache dm-region_hash dm-message"
> >  SECSTAGE="$RAIDMODS $LVMMODS $FSMODS $IDEMODS $SCSIMODS"
> > diff --git a/scripts/upd-instroot b/scripts/upd-instroot
> > index 09cf644..d83d375 100755
> > --- a/scripts/upd-instroot
> > +++ b/scripts/upd-instroot
> > @@ -118,8 +118,9 @@ PACKAGES="glibc glibc-common setup openssl python python-libs newt slang libseli
> >  	 libstdc++ expat libgcc readline ncurses yum python-sqlite
> >  	 python-elementtree pykickstart e2fsprogs-libs iscsi-initiator-utils
> >  	 db4 rhpxl xorg-x11-server-Xorg libuser system-config-date
> > -         yum-metadata-parser gfs2-utils libvolume_id rhel-instnum yum-kmod
> > -	 libdhcp libnl libdhcp6client libdhcp4client device-mapper-multipath
> > +         yum-metadata-parser gfs-utils kmod-gfs gfs2-utils libvolume_id
> > +         rhel-instnum yum-kmod libdhcp libnl libdhcp6client libdhcp4client
> > +         device-mapper-multipath
> >  	 kpartx dmraid python-pyblock mkinitrd libbdevid libbdevid-python
> >  	 libselinux-python nss udev keyutils-libs nspr python-iniparse
> >  	 cryptsetup-luks e4fsprogs fipscheck fipscheck-lib libdrm libmlx4
> 
> The rest of this looks fine.
> 




More information about the anaconda-patches mailing list