1. 23 Feb, 2017 37 commits
  2. 22 Feb, 2017 1 commit
  3. 29 Jan, 2017 2 commits
    • Jaegeuk Kim's avatar
      f2fs: relax async discard commands more · 4e6a8d9b
      Jaegeuk Kim authored
      This patch relaxes async discard commands to avoid waiting its end_io during
      checkpoint.
      Instead of waiting them during checkpoint, it will be done when actually reusing
      them.
      
      Test on initial partition of nvme drive.
      
       # time fstrim /mnt/test
      
      Before : 6.158s
      After : 4.822s
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      4e6a8d9b
    • Jaegeuk Kim's avatar
      f2fs: drop exist_data for inline_data when truncated to 0 · bb95d9ab
      Jaegeuk Kim authored
      A test program gets the SEEK_DATA with two values between
      a new created file and the exist file on f2fs filesystem.
      
      F2FS filesystem,  (the first "test1" is a new file)
      SEEK_DATA size != 0 (offset = 8192)
      SEEK_DATA size != 0 (offset = 4096)
      
      PNFS filesystem, (the first "test1" is a new file)
      SEEK_DATA size != 0 (offset = 4096)
      SEEK_DATA size != 0 (offset = 4096)
      
      int main(int argc, char **argv)
      {
              char *filename = argv[1];
              int offset = 1, i = 0, fd = -1;
      
              if (argc < 2) {
                      printf("Usage: %s f2fsfilename\n", argv[0]);
                      return -1;
              }
      
              /*
              if (!access(filename, F_OK) || errno != ENOENT) {
                      printf("Needs a new file for test, %m\n");
                      return -1;
              }*/
      
              fd = open(filename, O_RDWR | O_CREAT, 0777);
              if (fd < 0) {
                      printf("Create test file %s failed, %m\n", filename);
                      return -1;
              }
      
              for (i = 0; i < 20; i++) {
                      offset = 1 << i;
                      ftruncate(fd, 0);
                      lseek(fd, offset, SEEK_SET);
                      write(fd, "test", 5);
                      /* Get the alloc size by seek data equal zero*/
                      if (lseek(fd, 0, SEEK_DATA)) {
                              printf("SEEK_DATA size != 0 (offset = %d)\n", offset);
                              break;
                      }
              }
      
              close(fd);
              return 0;
      }
      Reported-and-Tested-by: default avatarKinglong Mee <kinglongmee@gmail.com>
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      bb95d9ab