Skip to content

Commit afe6949

Browse files
Tom Rixdhowells
authored andcommitted
afs: check function return
Static analysis reports this problem write.c:773:29: warning: Assigned value is garbage or undefined mapping->writeback_index = next; ^ ~~~~ The call to afs_writepages_region() can return without setting next. So check the function return before using next. Changes: ver Rust-for-Linux#2: - Need to fix the range_cyclic case also[1]. Fixes: e87b03f ("afs: Prepare for use of THPs") Signed-off-by: Tom Rix <[email protected]> Signed-off-by: David Howells <[email protected]> Reviewed-by: Marc Dionne <[email protected]> cc: [email protected] Link: https://lore.kernel.org/r/[email protected] Link: https://lore.kernel.org/r/CAB9dFdvHsLsw7CMnB+4cgciWDSqVjuij4mH3TaXnHQB8sz5rHw@mail.gmail.com/ [1] Link: https://lore.kernel.org/r/162609464716.3133237.10354897554363093252.stgit@warthog.procyon.org.uk/ # v1 Link: https://lore.kernel.org/r/162610727640.3408253.8687445613469681311.stgit@warthog.procyon.org.uk/ # v2
1 parent 6c881ca commit afe6949

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

fs/afs/write.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -771,13 +771,19 @@ int afs_writepages(struct address_space *mapping,
771771
if (wbc->range_cyclic) {
772772
start = mapping->writeback_index * PAGE_SIZE;
773773
ret = afs_writepages_region(mapping, wbc, start, LLONG_MAX, &next);
774-
if (start > 0 && wbc->nr_to_write > 0 && ret == 0)
775-
ret = afs_writepages_region(mapping, wbc, 0, start,
776-
&next);
777-
mapping->writeback_index = next / PAGE_SIZE;
774+
if (ret == 0) {
775+
mapping->writeback_index = next / PAGE_SIZE;
776+
if (start > 0 && wbc->nr_to_write > 0) {
777+
ret = afs_writepages_region(mapping, wbc, 0,
778+
start, &next);
779+
if (ret == 0)
780+
mapping->writeback_index =
781+
next / PAGE_SIZE;
782+
}
783+
}
778784
} else if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX) {
779785
ret = afs_writepages_region(mapping, wbc, 0, LLONG_MAX, &next);
780-
if (wbc->nr_to_write > 0)
786+
if (wbc->nr_to_write > 0 && ret == 0)
781787
mapping->writeback_index = next;
782788
} else {
783789
ret = afs_writepages_region(mapping, wbc,

0 commit comments

Comments
 (0)