]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
lfn: amend long file name hashing
authorYehuda Sadeh <yehuda@hq.newdream.net>
Tue, 26 Apr 2011 23:49:19 +0000 (16:49 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Tue, 26 Apr 2011 23:49:19 +0000 (16:49 -0700)
src/os/FileStore.cc

index 71f78e9c82a5ce6a1a95faced3a51b039012f5f2..fa82fe463d1bde3b0b0f7252aa4e11a5fefcd1d4 100644 (file)
@@ -179,15 +179,16 @@ static void build_filename(char *filename, int len, const char *old_filename, in
     return;
 
   hash_filename(old_filename, hash, sizeof(hash));
-  sprintf(filename + FILENAME_PREFIX_LEN, "_" FILENAME_COOKIE "_%s_%d", hash, i);
+  sprintf(filename + FILENAME_PREFIX_LEN, "_%s_%d_" FILENAME_COOKIE, hash, i);
 }
 
 /* is this a candidate? */
 static int lfn_is_hashed_filename(const char *filename)
 {
-  if (strlen(filename) < FILENAME_SHORT_LEN)
+  int len = strlen(filename);
+  if (len < FILENAME_SHORT_LEN)
     return 0;
-  return (strncmp(filename + FILENAME_PREFIX_LEN, "_" FILENAME_COOKIE "_", sizeof(FILENAME_COOKIE) -1 + 2) == 0);
+  return (strcmp(filename + len - (sizeof(FILENAME_COOKIE) - 1), FILENAME_COOKIE) == 0);
 }
 
 static void lfn_translate(const char *path, const char *name, char *new_name, int len)