[PATCH] 1/1 Correct fsync on write FILEMARKS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From 823564e4f3fc36a7c7fed4535541c57aa4552f13 Mon Sep 17 00:00:00 2001
From: Mark Harvey<markh794@xxxxxxxxx>
Date: Fri, 27 Jan 2012 08:32:05 +1100
Subject: ssc: fsync on WRITE FILEMARK

commit: 96e83a2e60857cd5356f99c45f0a0a658f600949
 missed fsync() on zero filemarks count.

SSC4r01e states:
  NOTE 43 - Upon completion of any buffered write operation, the application
	client may issue a WRITE FILEMARKS(6) command with the IMMED bit set
	to zero and the FILEMARK COUNT field set to zero to perform a
	synchronize operation

  The IMMED bit is defined as:
	a) written to the object buffer if the IMMED bit is set to one; or
	b) written to the medium if the IMMED bit is set to zero.

This patch calls fsync() ignoring the IMMED bit value.

Signed-off-by: Mark Harvey<markh794@xxxxxxxxx>
---
 usr/bs_ssc.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/usr/bs_ssc.c b/usr/bs_ssc.c
index f21509c..4efc482 100644
--- a/usr/bs_ssc.c
+++ b/usr/bs_ssc.c
@@ -189,9 +189,6 @@ static int append_blk(struct scsi_cmd *cmd, uint8_t *data,
 	}
 	/* Write new EOD blk header */

-	if (type == BLK_FILEMARK)
-		fsync(fd);
-
 	return SAM_STAT_GOOD;
 }

@@ -466,6 +463,7 @@ static void tape_rdwr_request(struct scsi_cmd *cmd)
 			append_blk(cmd, scsi_get_out_buffer(cmd), 0,
 					0, BLK_FILEMARK);

+		fsync(cmd->dev->fd);
 		break;

 	case READ_6:
--
1.7.4.1



--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SCSI]     [Linux RAID]     [Linux Clusters]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]

  Powered by Linux