From f45b3c87bfd7ab9d98ca03198822010293785e91 Mon Sep 17 00:00:00 2001
From: Nick Craig-Wood <nick@craig-wood.com>
Date: Thu, 6 Oct 2016 13:37:45 +0100
Subject: [PATCH] mount: add --no-seek flag to disable seeking

---
 cmd/mount/file.go  | 3 +++
 cmd/mount/mount.go | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/cmd/mount/file.go b/cmd/mount/file.go
index 343783b2d..965f15a74 100644
--- a/cmd/mount/file.go
+++ b/cmd/mount/file.go
@@ -114,6 +114,9 @@ func (f *File) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenR
 
 	switch {
 	case req.Flags.IsReadOnly():
+		if noSeek {
+			resp.Flags |= fuse.OpenNonSeekable
+		}
 		return newReadFileHandle(o)
 	case req.Flags.IsWriteOnly():
 		resp.Flags |= fuse.OpenNonSeekable
diff --git a/cmd/mount/mount.go b/cmd/mount/mount.go
index afed31715..737c68d42 100644
--- a/cmd/mount/mount.go
+++ b/cmd/mount/mount.go
@@ -20,6 +20,7 @@ import (
 var (
 	noModTime = false
 	debugFUSE = false
+	noSeek    = false
 	// mount options
 	readOnly                         = false
 	allowNonEmpty                    = false
@@ -43,6 +44,7 @@ func init() {
 	cmd.Root.AddCommand(mountCmd)
 	mountCmd.Flags().BoolVarP(&noModTime, "no-modtime", "", noModTime, "Don't read the modification time (can speed things up).")
 	mountCmd.Flags().BoolVarP(&debugFUSE, "debug-fuse", "", debugFUSE, "Debug the FUSE internals - needs -v.")
+	mountCmd.Flags().BoolVarP(&noSeek, "no-seek", "", noSeek, "Don't allow seeking in files.")
 	// mount options
 	mountCmd.Flags().BoolVarP(&readOnly, "read-only", "", readOnly, "Mount read-only.")
 	mountCmd.Flags().BoolVarP(&allowNonEmpty, "allow-non-empty", "", allowNonEmpty, "Allow mounting over a non-empty directory.")