Whamcloud - gitweb
LU-3587 changelogs: Account for changelog_ext_rec in CR_MAXSIZE
authorChristopher J. Morrone <morrone2@llnl.gov>
Tue, 16 Jul 2013 00:56:25 +0000 (17:56 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 31 Oct 2013 01:32:05 +0000 (21:32 -0400)
CR_MAXSIZE needs to account for an llog_changelog_rec that actually
contains a changelog_ext_rec structure rather than a changelog_rec.
With out doing so, a file size approaching the Linux kernel NAME_MAX
length that is renamed to a size also close to, or at, NAME_MAX will
exceed CR_MAXSIZE and trip an assertion.

Change-Id: I2d86955efcbd6d0fd28c87026a7720311b4f5598
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
Reviewed-on: http://review.whamcloud.com/6993
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/include/lustre/lustre_user.h

index 59a0931..91f66fc 100644 (file)
@@ -753,7 +753,8 @@ static inline void hsm_set_cl_error(int *flags, int error)
         *flags |= (error << CLF_HSM_ERR_L);
 }
 
-#define CR_MAXSIZE cfs_size_round(2*NAME_MAX + 1 + sizeof(struct changelog_rec))
+#define CR_MAXSIZE cfs_size_round(2*NAME_MAX + 1 + \
+                                 sizeof(struct changelog_ext_rec))
 
 struct changelog_rec {
         __u16                 cr_namelen;