1. 02 Oct, 2006 3 commits
  2. 25 Sep, 2006 1 commit
  3. 19 Sep, 2006 2 commits
  4. 04 Sep, 2006 4 commits
  5. 01 Sep, 2006 1 commit
    • Steven Whitehouse's avatar
      [GFS2] Update copyright, tidy up incore.h · e9fc2aa0
      Steven Whitehouse authored
      As per comments from Jan Engelhardt <jengelh@linux01.gwdg.de> this
      updates the copyright message to say "version" in full rather than
      "v.2". Also incore.h has been updated to remove forward structure
      declarations which are not required.
      The gfs2_quota_lvb structure has now had endianess annotations added
      to it. Also quota.c has been updated so that we now store the
      lvb data locally in endian independant format to avoid needing
      a structure in host endianess too. As a result the endianess
      conversions are done as required at various points and thus the
      conversion routines in lvb.[ch] are no longer required. I've
      moved the one remaining constant in lvb.h thats used into lm.h
      and removed the unused lvb.[ch].
      I have not changed the HIF_ constants. That is left to a later patch
      which I hope will unify the gh_flags and gh_iflags fields of the
      struct gfs2_holder.
      Cc: Jan Engelhardt <jengelh@linux01.gwdg.de>
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
  6. 31 Jul, 2006 1 commit
  7. 25 Jul, 2006 1 commit
    • Steven Whitehouse's avatar
      [GFS2] Alter direct I/O path · a9e5f4d0
      Steven Whitehouse authored
      As per comments received, alter the GFS2 direct I/O path so that
      it uses the standard read functions "out of the box". Needs a
      small change to one of the VFS functions. This reduces the size
      of the code quite a lot and also removes the need for one new export.
      Some more work remains to be done, but this is the bones of the
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
  8. 21 Jul, 2006 1 commit
  9. 11 Jul, 2006 1 commit
    • Steven Whitehouse's avatar
      [GFS2] Add generation number · 4340fe62
      Steven Whitehouse authored
      This adds a generation number for the eventual use of NFS to the
      ondisk inode. Its backward compatible with the current code since
      it doesn't really matter what the generation number is to start with,
      and indeed since its set to zero, due to it being taken from padding
      in both the inode and rgrp header, it should be fine.
      The eventual plan is to use this rather than no_formal_ino in the
      NFS filehandles. At that point no_formal_ino will be unused.
      At the same time we also add a releasepages call back to the
      "normal" address space for gfs2 inodes. Also I've removed a
      one-linrer function thats not required any more.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
  10. 03 Jul, 2006 1 commit
  11. 23 Jun, 2006 1 commit
  12. 22 Jun, 2006 1 commit
  13. 14 Jun, 2006 1 commit
    • Steven Whitehouse's avatar
      [GFS2] Fix unlinked file handling · feaa7bba
      Steven Whitehouse authored
      This patch fixes the way we have been dealing with unlinked,
      but still open files. It removes all limits (other than memory
      for inodes, as per every other filesystem) on numbers of these
      which we can support on GFS2. It also means that (like other
      fs) its the responsibility of the last process to close the file
      to deallocate the storage, rather than the person who did the
      unlinking. Note that with GFS2, those two events might take place
      on different nodes.
      Also there are a number of other changes:
       o We use the Linux inode subsystem as it was intended to be
      used, wrt allocating GFS2 inodes
       o The Linux inode cache is now the point which we use for
      local enforcement of only holding one copy of the inode in
      core at once (previous to this we used the glock layer).
       o We no longer use the unlinked "special" file. We just ignore it
      completely. This makes unlinking more efficient.
       o We now use the 4th block allocation state. The previously unused
      state is used to track unlinked but still open inodes.
       o gfs2_inoded is no longer needed
       o Several fields are now no longer needed (and removed) from the in
      core struct gfs2_inode
       o Several fields are no longer needed (and removed) from the in core
      There are a number of future possible optimisations and clean ups
      which have been made possible by this patch.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
  14. 18 May, 2006 2 commits
  15. 12 May, 2006 1 commit
  16. 25 Apr, 2006 1 commit
  17. 07 Apr, 2006 1 commit
    • Steven Whitehouse's avatar
      [GFS2] Fix a ref count bug and other clean ups · b09e593d
      Steven Whitehouse authored
      This fixes a ref count bug that sometimes showed up a umount time
      (causing it to hang) but it otherwise mostly harmless. At the same
      time there are some clean ups including making the log operations
      structures const, moving a memory allocation so that its not done
      in the fast path of checking to see if there is an outstanding
      transaction related to a particular glock.
      Removes the sd_log_wrap varaible which was updated, but never actually
      used anywhere. Updates the gfs2 ioctl() to run without the kernel lock
      (which it never needed anyway). Removes the "invalidate inodes" loop
      from GFS2's put_super routine. This is done in kill super anyway so
      we don't need to do it here. The loop was also bogus in that if there
      are any inodes "stuck" at this point its a bug and we need to know
      about it rather than hide it by hanging forever.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
  18. 04 Apr, 2006 1 commit
  19. 31 Mar, 2006 2 commits
    • Steven Whitehouse's avatar
      [GFS2] Update GFS2 for the recent pull from Linus · 8628de05
      Steven Whitehouse authored
      Some interfaces have changed. In particular one of the posix
      locking functions has changed prototype, along with the
      address space operation invalidatepage and the block getting
      callback to the direct IO function.
      In addition add the splice file operations. These will need to
      be updated to support AOP_TRUNCATED_PAGE before they will be
      of much use to us.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    • Steven Whitehouse's avatar
      [GFS2] Update ioctl() to new interface · 7ea9ea83
      Steven Whitehouse authored
      This is designed as a fs independent way to set flags on a
      particular inode. The values of the ioctl() and flags are
      designed to be identical to the ext2/3 values. Assuming that
      this plan is acceptable to people in general, the plan is to
      then move other fs across to using the same set of #defines,
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
  20. 28 Mar, 2006 1 commit
    • Steven Whitehouse's avatar
      [GFS2] Further updates to dir and logging code · 71b86f56
      Steven Whitehouse authored
      This reduces the size of the directory code by about 3k and gets
      readdir() to use the functions which were introduced in the previous
      directory code update.
      Two memory allocations are merged into one. Eliminates zeroing of some
      buffers which were never used before they were initialised by
      other data.
      There is still scope for further improvement in the directory code.
      On the logging side, a hand created mutex has been replaced by a
      standard Linux mutex in the log allocation code.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
  21. 21 Mar, 2006 1 commit
  22. 27 Feb, 2006 2 commits
  23. 23 Feb, 2006 2 commits
  24. 21 Feb, 2006 1 commit
  25. 15 Feb, 2006 1 commit
    • Steven Whitehouse's avatar
      [GFS2] Fix for lock recursion problem for internal files · 61a30dcb
      Steven Whitehouse authored
      Two internal files which are read through the gfs2_internal_read()
      routine were already locked when the routine was called and this
      do not need locking at the redapages level.
      This patch introduces a struct file which is used as a sentinal
      so that readpage will only perform locking in the case that the
      struct file passed to it is _not_ equal to this sentinal.
      Since the comments in the generic kernel code indicate that the
      struct file will never be used for anything other than passing
      straight through to readpage(), this should be ok.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
  26. 14 Feb, 2006 1 commit
    • Steven Whitehouse's avatar
      [GFS2] Put back O_DIRECT support · d1665e41
      Steven Whitehouse authored
      This patch adds back O_DIRECT support with various caveats
       1. Journaled data can be read via O_DIRECT since its now the
          same on disk format as normal data files.
       2. Journaled data writes with O_DIRECT will be failed sliently
          back to normal writes (should we really do this I wonder or
          should we return an error instead?)
       3. Stuffed files will be failed back to normal buffered I/O
       4. All the usual corner cases (write beyond current end of file,
          write to an unallocated block) will also revert to normal buffered I/O.
      The I/O path is slightly odd as reads arrive at the page cache layer
      with the lock for the file already held, but writes arrive unlocked.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
  27. 08 Feb, 2006 1 commit
    • Steven Whitehouse's avatar
      [GFS2] Make journaled data files identical to normal files on disk · 18ec7d5c
      Steven Whitehouse authored
      This is a very large patch, with a few still to be resolved issues
      so you might want to check out the previous head of the tree since
      this is known to be unstable. Fixes for the various bugs will be
      forthcoming shortly.
      This patch removes the special data format which has been used
      up till now for journaled data files. Directories still retain the
      old format so that they will remain on disk compatible with earlier
      releases. As a result you can now do the following with journaled
      data files:
       1) mmap them
       2) export them over NFS
       3) convert to/from normal files whenever you want to (the zero length
          restriction is gone)
      In addition the level at which GFS' locking is done has changed for all
      files (since they all now use the page cache) such that the locking is
      done at the page cache level rather than the level of the fs operations.
      This should mean that things like loopback mounts and other things which
      touch the page cache directly should now work.
      Current known issues:
       1. There is a lock mode inversion problem related to the resource
          group hold function which needs to be resolved.
       2. Any significant amount of I/O causes an oops with an offset of hex 320
          (NULL pointer dereference) which appears to be related to a journaled data
          buffer appearing on a list where it shouldn't be.
       3. Direct I/O writes are disabled for the time being (will reappear later)
       4. There is probably a deadlock between the page lock and GFS' locks under
          certain combinations of mmap and fs operation I/O.
       5. Issue relating to ref counting on internally used inodes causes a hang
          on umount (discovered before this patch, and not fixed by it)
       6. One part of the directory metadata is different from GFS1 and will need
          to be resolved before next release.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
  28. 18 Jan, 2006 2 commits
  29. 16 Jan, 2006 1 commit