modify error report in mdwrite/mdextend

suyu.cmj <mengjuan.cmj@alibaba-inc.com>

From: 蔡梦娟(玊于) <mengjuan.cmj@alibaba-inc.com>
To: "pgsql-hackers" <pgsql-hackers@lists.postgresql.org>
Date: 2021-10-18T08:14:39Z
Lists: pgsql-hackers

Attachments

Hi, all
I noticed that the "else" is missing during the error report after FileWrite() of mdwrite()/mdextend(), short write error is supposed to be reported when written bytes is not less than 0.
I modified it in the attached patch:
diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c
index b4bca7eed6..dd60479b65 100644
--- a/src/backend/storage/smgr/md.c
+++ b/src/backend/storage/smgr/md.c
@@ -450,13 +450,14 @@ mdextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
       errmsg("could not extend file \"%s\": %m",
        FilePathName(v->mdfd_vfd)),
       errhint("Check free disk space.")));
-  /* short write: complain appropriately */
-  ereport(ERROR,
-    (errcode(ERRCODE_DISK_FULL),
-     errmsg("could not extend file \"%s\": wrote only %d of %d bytes at block %u",
-      FilePathName(v->mdfd_vfd),
-      nbytes, BLCKSZ, blocknum),
-     errhint("Check free disk space.")));
+  else
+   /* short write: complain appropriately */
+   ereport(ERROR,
+     (errcode(ERRCODE_DISK_FULL),
+      errmsg("could not extend file \"%s\": wrote only %d of %d bytes at block %u",
+       FilePathName(v->mdfd_vfd),
+       nbytes, BLCKSZ, blocknum),
+      errhint("Check free disk space.")));
  }

Does this match your previous expectations? Hope to get your reply.
Thanks & Best Regard