Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-2231

ZFS OSD not setting dnode parent field

Details

    • Bug
    • Resolution: Duplicate
    • Major
    • None
    • None
    • None
    • 2
    • 3
    • Orion
    • 2966

    Description

      File foo created from a lustre client:

      Object  lvl   iblk   dblk  dsize  lsize   %full  type
         197    1    16K   128K     1K   128K    0.00  ZFS plain file
                                          192   bonus  System attributes
          dnode flags: USED_BYTES USERUSED_ACCOUNTED SPILL_BLKPTR
          dnode maxblkid: 0
          path    ???<object#197>
          uid     840000038
          gid     840000038
          atime   Fri Mar 30 01:51:12 2012
          mtime   Fri Mar 30 01:51:23 2012
          ctime   Fri Mar 30 01:51:23 2012
          crtime  Fri Mar 30 01:51:12 2012
          gen     1015
          mode    100644
          size    0
          parent  0
          links   1
          pflags  0
          rdev    0x0000000000000000
      

      It appears that the SA_ZPL_PARENT() is used in several places to process directories (e.g. avoiding circular directory references), so it definitely needs to be set for directories. It also seems to be set for regular files, but it is difficult to determine if it is required or not.

      Since there is only a single parent directory field, we should determine what the behaviour of the parent field is for hard links and renames:

      mkdir a b
      ls -li       # get inode numbers
      zdb {check parent} .
      touch a/foo
      zdb {check parent} a/foo
      ln a/foo b/bar
      zdb {check parent} b/bar
      rm {link from current parent}
      zdb {check parent of other link}
      
      touch a/baz
      zdb {check parent} a/baz
      mv a/baz b/baz
      zdb {check parent} b/baz
      

      I suspect that the parent will be updated on rename (it would have to be for directories), but I'm unsure what will happen if the current parent link will be dropped. I suspect it will be set to 0.

      Attachments

        Issue Links

          Activity

            People

              tappro Mikhail Pershin
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: