]> git.sven.stormbind.net Git - sven/fuse-exfat.git/blobdiff - libexfat/cluster.c
Update upstream source from tag 'upstream/1.4.0'
[sven/fuse-exfat.git] / libexfat / cluster.c
index 0f2e91b07317e4bfbb9bc180b180a54021bfa7c3..4ee6135fd84f152040188bc0d7041cb7a9065850 100644 (file)
@@ -3,7 +3,7 @@
        exFAT file system implementation library.
 
        Free exFAT implementation.
-       Copyright (C) 2010-2018  Andrew Nayenko
+       Copyright (C) 2010-2023  Andrew Nayenko
 
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
@@ -426,9 +426,14 @@ int exfat_truncate(struct exfat* ef, struct exfat_node* node, uint64_t size,
 
        if (erase)
        {
-               rc = erase_range(ef, node, node->size, size);
+               rc = erase_range(ef, node, node->valid_size, size);
                if (rc != 0)
                        return rc;
+               node->valid_size = size;
+       }
+       else
+       {
+               node->valid_size = MIN(node->valid_size, size);
        }
 
        exfat_update_mtime(node);